JAVA WEB JDBC连接数据库

     

班级   软件16-1   学号 3162052051116  姓名 张识虔   同组实验者              

实验名称       JDBC访问数据库                       日期 2018 10 24

一、实验目的:

 

理解JDBC的工作原理,掌握JDBC访问数据库;

掌握常见数据库MYSQL ;

 

 

二、实验环境:

 

 

 

三、实验内容:

现在使用JDBC写一个简单的小程序,主要是使用JDBC连接MySQL数据库,然后对数据库进行一些基本的增删改查操作。

定义实体类

UserVO.java

package bean;

import java.util.Date;

public class UserVO {

    private int id;

    private String userName;

    private int age;

    private int sex;

    private Date createDt;

   

    public int getId(){

    return id;

    }

     

        public void setId(int id) { 

            this.id = id; 

        } 

     

        public String getUserName() { 

            return userName; 

        } 

     

        public void setUserName(String userName) { 

            this.userName = userName; 

        } 

     

        public int getAge() { 

            return age; 

        } 

     

        public void setAge(int age) { 

            this.age = age; 

        } 

     

        public int getSex() { 

            return sex; 

        } 

     

        public void setSex(int sex) { 

            this.sex = sex; 

        } 

     

        public Date getCreateDt() { 

            return createDt; 

        } 

     

        public void setCreateDt(Date createDt) { 

            this.createDt = createDt; 

        }

     

        @Override 

        public String toString() { 

            return "UserVO [id=" + id + ", userName=" + userName + ", age=" + age  + ", sex=" + sex + ", createDt=" + createDt + "]"; 

        } 

}

定义数据库连接类

DBUtil.java
package bean;



import java.sql.Connection;

import java.sql.DriverManager;



public class DBUtil {



       private static final String URI = "jdbc:mysql://182.91.133.2:3306/z?"     ///182.91.133.2是本地的IP地址 可以百度IP就可以显示   z是数据库名

                     + "user=root&password=123&useUnicode=true&characterEncoding=UTF-8";

         //user 是账号   password是密码

       private static final String DRIVER = "com.mysql.jdbc.Driver";

      

       public static Connection connectDB() throws Exception {

              //1、加载数据库驱动

              Class.forName(DRIVER);

              //2、获取数据库连接

              Connection conn = DriverManager.getConnection(URI);

             

              return conn;

       }

      

}

 

实现运行的代码

UserDao.java

package bean;

import java.sql.*;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;



public class UserDao {

       public List<UserVO> queryAll() throws Exception {

//查询操作,查询可以一次查询出所有的数据,也可以根据相应的条件查询。

查询所有的数据

              Connection conn = DBUtil.connectDB();

              String sql = "SELECT * FROM tbl_user_info";

              List<UserVO> userList = new ArrayList<UserVO>();

             

              Statement stmt = conn.createStatement();

              ResultSet rs = stmt.executeQuery(sql);

              while(rs.next()) {

                     UserVO user = new UserVO();

                     user.setId(rs.getInt("id"));

                     user.setUserName(rs.getString("user_name"));

                     user.setAge(rs.getInt("age"));

                     user.setSex(rs.getInt("sex"));

                     user.setCreateDt(rs.getDate("create_dt"));

                    

                     userList.add(user);

              }

             

              return userList;

       }

       public List<UserVO> queryByParams(List<Map<String, Object>> params) throws Exception {

//这个方法可以自由选择查询的条件,只需要向方法中传入一个条件的List即可,这些条件都是由Map组成的,每一个Map包含三个元素,col表示查询条件对应哪一列,rel表示查询条件的关系是什么,value是指查询条件的值

              Connection conn = DBUtil.connectDB();

              StringBuilder sql = new StringBuilder("SELECT * FROM tbl_user_info WHERE 1=1 ");

             

              for(Map<String, Object> param : params) {

                     sql.append(" and ");

                     sql.append(" " + param.get("col") + " ");

                     sql.append(" " + param.get("rel") + " ");

                     sql.append(" " + param.get("value") + " ");

              }

              System.out.println(sql.toString());

             

              List<UserVO> userList = new ArrayList<UserVO>();

             

              Statement stmt = conn.createStatement();

              ResultSet rs = stmt.executeQuery(sql.toString());

              while(rs.next()) {

                     UserVO user = new UserVO();

                     user.setId(rs.getInt("id"));

                     user.setUserName(rs.getString("user_name"));

                     user.setAge(rs.getInt("age"));

                     user.setSex(rs.getInt("sex"));

                     user.setCreateDt(rs.getDate("create_dt"));

                    

                     userList.add(user);

              }

             

              return userList;

       }

       public void addUser(UserVO user) throws Exception {

//增加的操作

              Connection conn = DBUtil.connectDB();

              String sql = "INSERT INTO tbl_user_info(user_name, age, sex, create_dt) "

                            + " VALUES(?, ?, ?, ?)";

             

              PreparedStatement pstmt = conn.prepareStatement(sql);

              pstmt.setString(1, user.getUserName());

              pstmt.setInt(2, user.getAge());

              pstmt.setInt(3, user.getSex());

              pstmt.setDate(4, new Date(new java.util.Date().getTime()));

             

              pstmt.execute();

       }

       public void deleteUser(int id) throws Exception {

//删除的方法,根据用户的id来删除数据

              Connection conn = DBUtil.connectDB();

              String sql = "DELETE FROM tbl_user_info WHERE id = ?";

             

              PreparedStatement pstmt = conn.prepareStatement(sql);

              pstmt.setInt(1, id);

             

              pstmt.execute();

       }

       public void updateUser(UserVO user) throws Exception {

//更新操作

              Connection conn = DBUtil.connectDB();

              String sql = "UPDATE tbl_user_info SET user_name=?, age=?, sex=?"

                            + " WHERE id=?";

             

              PreparedStatement pstmt = conn.prepareStatement(sql);

              pstmt.setString(1, user.getUserName());

              pstmt.setInt(2, user.getAge());

              pstmt.setInt(3, user.getSex());

              pstmt.setInt(4, user.getId());

             

              pstmt.executeUpdate();

       }





       public static void main(String[] args) {

              //增删改的主函数代码放的地方

       }

}

 

 

数据库运行部分

Create database z; 创建数据库

显示数据库

 

使用use z数据库

 

创建一个表格

插入数据

 

显示表格

 

在MyEclipse运行结果

  

     public static void main(String[] args) {

              UserDao dao = new UserDao();

             

              try {

                     List<UserVO> userList = dao.queryAll();

                     for(UserVO user : userList) {

                            System.out.println(user);

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

       }

条件查找

public static void main(String[] args) {

              UserDao dao = new UserDao();

             

              List<Map<String, Object>> params = new ArrayList<Map<String,Object>>();

              Map<String, Object> param1 = new HashMap<String, Object>();

              param1.put("col", "user_name");

              param1.put("rel", "like");

              param1.put("value", "'%zhang%'");   //寻找zhang的名字

              params.add(param1);

             

              Map<String, Object> param2 = new HashMap<String, Object>();

              param2.put("col", "sex");

              param2.put("rel", "=");

              param2.put("value", 1);  //性别为1的

              params.add(param2);

              try {

                     List<UserVO> userList = dao.queryByParams(params);

                     for(UserVO user : userList) {

                            System.out.println(user);

                     }

              } catch (Exception e) {

                     e.printStackTrace();

              }

             

       }

增加之后

public static void main(String[] args) {

              UserDao dao = new UserDao();

              UserVO user = new UserVO();

             

              user.setUserName("xiaozi");  //增加的名字

              user.setAge(0);               //增加的岁数

              user.setSex(1);                     //增加的性别

              try {

                     dao.addUser(user);

              } catch (Exception e) {

                     e.printStackTrace();

              }

删除之后

public static void main(String[] args) {

              UserDao dao = new UserDao();

             

              try {

                     dao.deleteUser(1);     //删除的ID为1

              } catch (Exception e) {

                     e.printStackTrace();

              }

       }

更新  xiaozi的值

public static void main(String[] args) {

        UserDao dao = new UserDao();

        UserVO user = new UserVO();

       

        user.setUserName("xiaozi");   //名字为 xiaozi

        user.setAge(10);               //更新岁数为10

        user.setSex(1);                

        user.setId(4);

       

        try {

            dao.updateUser(user);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

 

 

四、心得体会:

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_41398448/article/details/83592260