美文网首页
java中的数据库基本操作

java中的数据库基本操作

作者: mrChan1234 | 来源:发表于2018-08-14 16:30 被阅读0次

    java基础入门中一把使用JDBC来对关系型数据库进行增删查改操作,首先要搞清楚一个概念,什么是JDBC?JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序.在API里面会发现有几个很核心的类:Connection、PreparedStatement、ResultSet:这几个类具体的API操作请自行在API文档里面研究:
    (1)创建Connection对象、SQL查询命令字符串:
    (2)对Connection对象传入SQL查询命令,获得PreparedStatement对象;
     (3)对PreparedStatement对象执行executeUpdate()或executeQurey()获得结果;
     (4)先后关闭PreparedStatement对象和Connection对象。

    1.首先建立连接,在建立连接的过程中,需要加载数据库驱动,这里以mysql数据库为例:需要导入mysql的jar包:


    mysql jar.png

    加载驱动的名字以mysql为例是com.mysql.jdbc.Driver,不同类型的数据库名字也不同:

    public static void init() {
            try {
                //加载mysql驱动
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("成功加载MySQL驱动程序");
                //连接
                connection = DriverManager.getConnection(url);
                System.out.println("数据连接成功!");
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("Connection初始化失败!");
                e.printStackTrace();
            }
        }
    

    2.在操作的过程中那获取PerpareStatement, 使用这个对象去操作数据库,对其进行增删查改操作,具体的代码实现如下:

    public class DBConnection {
        static String url = "jdbc:mysql://localhost:3306/personInfo?user=root&password=12345678&useUnicode=true&characterEncoding=UTF8";
        static Connection connection = null;
        static ResultSet resultSet = null;
        static PreparedStatement pStatement = null;
        
        // 初始化
        public static void init() {
            try {
                //加载mysql驱动
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("成功加载MySQL驱动程序");
                //连接
                connection = DriverManager.getConnection(url);
                System.out.println("数据连接成功!");
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("Connection初始化失败!");
                e.printStackTrace();
            }
        }
        
        // 查询   返回结果集
        public static ResultSet qureyDBWithSQL(String sqlStr) {
            try {
                pStatement = connection.prepareStatement(sqlStr);
                resultSet = pStatement.executeQuery(sqlStr);
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("数据库查询异常!");
                e.printStackTrace();
            }
            return resultSet;
        }
        
        // 关闭链接
        public static void closeConnection() {
            try {
                connection.close();
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("关闭失败!");
                e.printStackTrace();
            }
        }
        
        //更新操作
        public static int  updteDBWithSql(String sqlStr) {
            int rows = 0;
            try {
                pStatement = connection.prepareStatement(sqlStr);
                rows = pStatement.executeUpdate(sqlStr);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            return rows;
        }
    
        
        //批量插入
        public static void mutiplyInsert() {
            for (int i= 0; i < 100; i++) {
                String sqlstr = "insert into personInfo(personId,name,age)values("+ (100 + i) + ",'Chan" + (100  + i)  + "'" + "," + 24 + ")" + ";";
                System.out.println(sqlstr);
                try {
                    pStatement = connection.prepareStatement(sqlstr);
                    pStatement.execute(sqlstr);
                } catch (Exception e) {
                    // TODO: handle exception
                    e.printStackTrace();
                }
            }
        }
    }
    

    操作类的实现代码:

    package Dao;
    
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    public class OPerationImp implements Operation {
        
        @Override
        public List<Person> getAllPerson() {
            List<Person> list = new ArrayList<Person>();
            try {
                DBConnection.init();
                //批量插入
                DBConnection.mutiplyInsert();
                //结果集
                ResultSet rSet = DBConnection.qureyDBWithSQL("select * from personInfo");
                while (rSet.next()) {
                    //新建实体类
                    Person  person = new Person();
                    person.setPersonId(rSet.getInt("personId"));
                    person.setName(rSet.getString("name"));
                    person.setAge(rSet.getInt("age"));
                    list.add(person);
                }
                DBConnection.closeConnection();
                
            } catch (Exception e) {
                e.printStackTrace();
            }
            return list;
        }
    
        @Override
        public boolean addPerson(Person person) {
            // TODO Auto-generated method stub
            DBConnection.init();
            int rows = 0;
            try {
                String sqlstr = "insert into personInfo(personId,name,age)values(" + person.getPersonId() + ",'" +person.getName() + "'" +"," + person.getAge() + ");";
               rows = DBConnection.updteDBWithSql(sqlstr);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            return rows >0;
        }
        
        @Override
        public boolean deletePerson(int personId) {
            // TODO Auto-generated method stub
            int rows = 0;
            try {
                String sqlStr=  "delete from personInfo where personId = " + personId;
                rows = DBConnection.updteDBWithSql(sqlStr);
            } catch (Exception e) {
                // TODO: handle exception
            }
            return rows > 0;
        }
    
        @Override
        public boolean updatePerson(Person person) {
            int rows = 0;
            try {
                String sqlStr = "update personInfo  SET name = '" + person.getName() + "'" + "age = " + person.getAge()
                        + "where personId = '" + person.getPersonId() + "'";
                rows = DBConnection.updteDBWithSql(sqlStr);
            } catch (Exception e) {
                // TODO: handle exception
            }
            return rows > 0;
        }
    }
    

    main函数实现:

    package Dao;
    
    import java.util.List;
    
    public class Main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            OPerationImp  main = new OPerationImp();
            List <Person> listArray = main.getAllPerson();
            for (int i = 0; i < listArray.size(); i++) {
                Person person = (Person)listArray.get(i);
                System.out.println("dbQueryResult = " + person);    
            }
        }
    }
    

    其实现打印如下:


    result print.png

    在终端查看数据库如下:


    mySQL.png

    总结:这里只是简单的对数据库进行了增删查改操作,为了熟悉jdbc的API,写的不好的地方,请私信我指正,如果您觉着对您有帮助的话,给我点一波赞啊!

    相关文章

      网友评论

          本文标题:java中的数据库基本操作

          本文链接:https://www.haomeiwen.com/subject/qryybftx.html