Java Web实验九:使用JDBC完成数据的增编削查

打印 上一主题 下一主题

主题 914|帖子 914|积分 2742

实验九   使用JDBC完成数据的增编削查

一、实验目标
1. 熟练JDBC的根本概念和原理;
2. 把握使用JDBC举行数据库毗连和操作的方法;
3. 认识JDBC在增编削查中的应用;
二、实验内容
在实际项目标开发中,用户信息是存放在数据库中的,管理员对用户信息举行管理的过程,无时无刻不涉及到增编削查操作。本次实验要求创建数据库表user表,包罗属性id(主键)、name、password、email、birthday等字段,其中id为学号,创建数据库表后使用JDBC实现对数据库中用户信息的增加(JdbcInsertTest.java)、删除(DeleteUserTest.java)、修改(UpdateUserTest.java)和查询(FindAllUserTest.java和FindUserByIdTest.java)操作,要求数据库表中有一行信息为学生本人的学号姓名。
三、实验源代码、运行截图
源代码
User.java:
  1. import java.util.Date;
  2. public class User {
  3.     private int id;
  4.     private String name;
  5.     private String password;
  6.     private String email;
  7.     private Date birthday;
  8.     public int getId() {
  9.         return id;
  10.     }
  11.     public void setId(int id) {
  12.         this.id = id;
  13.     }
  14.     public String getUsername() {
  15.         return name;
  16.     }
  17.     public void setUsername(String username) {
  18.         this.name = username;
  19.     }
  20.     public String getPassword() {
  21.         return password;
  22.     }
  23.     public void setPassword(String password) {
  24.         this.password = password;
  25.     }
  26.     public String getEmail() {
  27.         return email;
  28.     }
  29.     public void setEmail(String email) {
  30.         this.email = email;
  31.     }
  32.     public Date getBirthday() {
  33.         return birthday;
  34.     }
  35.     public void setBirthday(Date birthday) {
  36.         this.birthday = birthday;
  37.     }
  38. }
复制代码
JDBCUtil.java:
  1. import java.sql.*;
  2. public class JDBCUtil {
  3.     public static Connection getConnection() throws SQLException,
  4.             ClassNotFoundException{
  5.         Class.forName("com.mysql.cj.jdbc.Driver");
  6.         String url="jdbc:mysql://localhost:3306/javatest9?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
  7.         String username="root";
  8.         String password="123456";
  9.         Connection conn= DriverManager.getConnection(url,username,password);
  10.         return conn;
  11.     }
  12.     public static void release(Statement stmt,Connection conn){
  13.         if(stmt!=null){
  14.             try {
  15.                 stmt.close();
  16.             }catch (SQLException e){
  17.                 e.printStackTrace();
  18.             }
  19.             stmt=null;
  20.         }
  21.         if(conn!=null){
  22.             try {
  23.                 conn.close();
  24.             }catch (SQLException e){
  25.                 e.printStackTrace();
  26.             }
  27.             conn=null;
  28.         }
  29.     }
  30.     public static void release(ResultSet rs,Statement stmt,Connection conn){
  31.         if(rs!=null){
  32.             try {
  33.                 rs.close();
  34.             }catch (SQLException e){
  35.                 e.printStackTrace();
  36.             }
  37.             rs=null;
  38.         }
  39.         release(stmt,conn);
  40.     }
  41. }
复制代码
UserDao.java:
  1. import java.sql.Array;
  2. import java.sql.Connection;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. import java.text.SimpleDateFormat;
  6. import java.util.ArrayList;
  7. public class UserDao {
  8.     //添加用户
  9.     public boolean insert(User user){
  10.         Connection conn=null;
  11.         Statement stmt=null;
  12.         ResultSet rs=null;
  13.         try {
  14.             conn=JDBCUtil.getConnection();
  15.             stmt=conn.createStatement();
  16.             SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  17.             String birthday=sdf.format(user.getBirthday());
  18.             String sql="INSERT INTO user(id,name,password,email,birthday)"+
  19.                     "VALUES("
  20.                     +user.getId()
  21.                     +",'"
  22.                     +user.getUsername()
  23.                     +"','"
  24.                     +user.getPassword()
  25.                     +"','"
  26.                     +user.getEmail()
  27.                     +"','"
  28.                     + birthday+"')";
  29.             int num=stmt.executeUpdate(sql);
  30.             if(num>0){
  31.                 return true;
  32.             }
  33.             return false;
  34.         }catch (Exception e){
  35.             e.printStackTrace();
  36.         }finally {
  37.             JDBCUtil.release(rs,stmt,conn);
  38.         }
  39.         return false;
  40.     }
  41.     //查询操作
  42.     public  ArrayList<User> findAll(){
  43.         Connection conn=null;
  44.         Statement stmt=null;
  45.         ResultSet rs=null;
  46.         ArrayList<User> list=new ArrayList<User>();
  47.         try {
  48.             conn=JDBCUtil.getConnection();
  49.             stmt=conn.createStatement();
  50.             String sql="SELECT * FROM user";
  51.             rs=stmt.executeQuery(sql);
  52.             while(rs.next()){
  53.                 User user=new User();
  54.                 user.setId(rs.getInt("id"));
  55.                 user.setUsername(rs.getString("name"));
  56.                 user.setPassword(rs.getString("password"));
  57.                 user.setEmail(rs.getString("email"));
  58.                 user.setBirthday(rs.getDate("birthday"));
  59.                 list.add(user);
  60.             }
  61.             return list;
  62.         }catch (Exception e){
  63.             e.printStackTrace();
  64.         }finally {
  65.             JDBCUtil.release(rs,stmt,conn);
  66.         }
  67.         return null;
  68.     }
  69.     //查找指定id操作
  70.     public User find(int id){
  71.         Connection conn=null;
  72.         Statement stmt=null;
  73.         ResultSet rs=null;
  74.         try {
  75.             conn=JDBCUtil.getConnection();
  76.             stmt=conn.createStatement();
  77.             String sql="SELECT * FROM user WHERE id="+id;
  78.             rs=stmt.executeQuery(sql);
  79.             while(rs.next()){
  80.                 User user=new User();
  81.                 user.setId(rs.getInt("id"));
  82.                 user.setUsername(rs.getString("name"));
  83.                 user.setPassword(rs.getString("password"));
  84.                 user.setEmail(rs.getString("email"));
  85.                 user.setBirthday(rs.getDate("birthday"));
  86.                 return user;
  87.             }
  88.             return null;
  89.         }catch (Exception e){
  90.             e.printStackTrace();
  91.         }finally {
  92.             JDBCUtil.release(rs,stmt,conn);
  93.         }
  94.         return null;
  95.     }
  96.     //删除操作
  97.     public boolean delete(int id){
  98.         Connection conn=null;
  99.         Statement stmt=null;
  100.         ResultSet rs=null;
  101.         try{
  102.             conn=JDBCUtil.getConnection();
  103.             stmt=conn.createStatement();
  104.             String sql="DELETE FROM user WHERE id="+id;
  105.             int num=stmt.executeUpdate(sql);
  106.             if(num>0){
  107.                 return true;
  108.             }
  109.             return false;
  110.         }catch (Exception e){
  111.             e.printStackTrace();
  112.         }finally {
  113.             JDBCUtil.release(rs,stmt,conn);
  114.         }
  115.         return false;
  116.     }
  117.     //修改用户
  118.     public boolean update(User user){
  119.         Connection conn=null;
  120.         Statement stmt=null;
  121.         ResultSet rs=null;
  122.         try {
  123.             conn=JDBCUtil.getConnection();
  124.             stmt=conn.createStatement();
  125.             SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  126.             String birthday=sdf.format(user.getBirthday());
  127.             String sql="UPDATE user set name='"+user.getUsername()
  128.                     +"',password='"+user.getPassword()+"',email='"
  129.                     +user.getEmail()+"',birthday='"+birthday
  130.                     +"'WHERE id="+user.getId();
  131.             int num=stmt.executeUpdate(sql);
  132.             if(num>0){
  133.                 return true;
  134.             }
  135.             return false;
  136.         }catch (Exception e){
  137.             e.printStackTrace();
  138.         }finally {
  139.             JDBCUtil.release(rs,stmt,conn);
  140.         }
  141.         return false;
  142.     }
  143. }
复制代码
JdbcInsertTest.java:
  1. import java.util.Calendar;
  2. import java.util.Date;
  3. public class JdbcInsertTest {
  4.     public static void main(String[] args) {
  5.         UserDao ud=new UserDao();
  6.         User user=new User();
  7.         user.setId(202266623);
  8.         user.setUsername("李四");
  9.         user.setPassword("123");
  10.         user.setEmail("lisi@qq.com");
  11.         Calendar calendar= Calendar.getInstance();
  12.         calendar.set(2003, Calendar.FEBRUARY, 21);  //年月日  也可以具体到时分秒如calendar.set(2015, 10, 12,11,32,52);
  13.         Date date=calendar.getTime();//date就是你需要的时间
  14.         user.setBirthday(date);
  15.         boolean b=ud.insert(user);
  16.         System.out.println(b);
  17.     }
  18. }
复制代码
DeleteUserTest.java:
  1. public class DeleteUserTest {
  2.     public static void main(String[] args) {
  3.         UserDao userDao=new UserDao();
  4.         boolean b=userDao.delete(202233366);
  5.         System.out.println(b);
  6.     }
  7. }
复制代码
UpdateUserTest.java:
  1. import java.util.Calendar;
  2. import java.util.Date;
  3. public class UpdateUserTest {
  4.     public static void main(String[] args) {
  5.         UserDao userDao=new UserDao();
  6.         User user=new User();
  7.         user.setId(202233366);
  8.         user.setUsername("赵六");
  9.         user.setPassword("12345");
  10.         user.setEmail("zhaoliu@qq.com");
  11.         Calendar calendar= Calendar.getInstance();
  12.         calendar.set(2003, Calendar.JUNE, 21);  //年月日  也可以具体到时分秒如calendar.set(2015, 10, 12,11,32,52);
  13.         Date date=calendar.getTime();//date就是你需要的时间
  14.         user.setBirthday(date);
  15.         boolean b=userDao.update(user);
  16.         System.out.println(b);
  17.     }
  18. }
复制代码
FindAllUserTest.java:
  1. import java.util.ArrayList;
  2. public class FindAllUserTest {
  3.     public static void main(String[] args) {
  4.         UserDao userDao=new UserDao();
  5.         ArrayList<User> list=userDao.findAll();
  6.         for(int i=0;i<list.size();i++){
  7.             System.out.println("id:"+list.get(i).getId()+"\t"+"name:"+list.get(i).getUsername()+"\t\t"+"email:"+list.get(i).getEmail()+"\t\t"+"birthday:"+list.get(i).getBirthday());
  8.         }
  9.     }
  10. }
复制代码
FindUserByIdTest.java:
  1. public class FindUserByIdTest {
  2.     public static void main(String[] args) {
  3.         UserDao userDao=new UserDao();
  4.         User user= userDao.find(202233366);
  5.         System.out.println("id:"+user.getId()+"\tname:"+user.getUsername()+"\t\temail:"+user.getEmail()+"\t\tbirthday:"+user.getBirthday());
  6.     }
  7. }
复制代码
运行截图

MySQL命令窗查看user表


团体代码框架(IDEA和MySQL毗连成功)


删除用户数据(id:202233366 name:赵六 email:zhaoliu@qq.com birthday:2003-6-21)

增加用户数据(id:202233366 name:赵六 email:zhaoliu@qq.com birthday:2003-6-21)

修改用户数据(id:202233366 name:赵六 email:zhaoliu@qq.com birthday:2003-6-21改为id:202233366 name:王五 email:wangwu@qq.com birthday:2004-6-21)



查询用户数据(查看全部)


查询用户数据(查看指定id用户数据,这里查询202233366)



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表