文章标题

来源:互联网 发布:电脑音乐合成器软件 编辑:程序博客网 时间:2024/05/17 00:12

JDBC的过程
1.得到驱动Driver
2.得到连接Connection
3.得到可执行语句的PreparedStatement
4.得到结果ResultSet
5.对数据库进行增删查改
6.关闭空间

初始状态的表格
初始状态的表格

以下是多条记录插入到数据库表格的过程

#info.properties文件内容,储存在src根目录下#驱动路径drivername=com.mysql.jdbc.Driver#数据库路径url=jdbc:mysql://localhost:3306/day01#mysql用户名username=root#mysql密码password=123
//用户类:供java插入对象到数据库的表格中(即mysql的一条记录)import java.sql.Date;public class User {    private String ename;    private String job;    private int mgr;    private Date hiredate;    private float salary;    private float comm;    private int deptno;    public User() {        super();    }    public User(String ename, String job, int mgr, Date hiredate, float salary, float comm, int deptno) {        super();        this.ename = ename;        this.job = job;        this.mgr = mgr;        this.hiredate = hiredate;        this.salary = salary;        this.comm = comm;        this.deptno = deptno;    }    public String getEname() {        return ename;    }    public void setEname(String ename) {        this.ename = ename;    }    public String getJob() {        return job;    }    public void setJob(String job) {        this.job = job;    }    public int getMgr() {        return mgr;    }    public void setMgr(int mgr) {        this.mgr = mgr;    }    public Date getHiredate() {        return hiredate;    }    public void setHiredate(Date hiredate) {        this.hiredate = hiredate;    }    public float getSalary() {        return salary;    }    public void setSalary(float salary) {        this.salary = salary;    }    public float getComm() {        return comm;    }    public void setComm(float comm) {        this.comm = comm;    }    public int getDeptno() {        return deptno;    }    public void setDeptno(int deptno) {        this.deptno = deptno;    }    @Override    public String toString() {        return "User [ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", hiredate=" + hiredate + ", salary="                + salary + ", comm=" + comm + ", deptno=" + deptno + "]";    }}
//工具类:提供获取连接数据库的方法import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ResourceBundle;public class DBUtils {    private static String drivername;    private static String url;    private static String user;    private static String password;    //初始化信息,先加载,只加载一次    static{        //获取info.preporties(储存在src根目录下的文件)里的信息,下面地址写文件名info即可,后缀不用写        ResourceBundle info = ResourceBundle.getBundle("info");        //获取信息供获取驱动和获取连接使用        drivername = info.getString("drivername");        url = info.getString("url");        user = info.getString("username");        password = info.getString("password");    }    //工具类提供的都是静态的方法,供外界通过类名直接调用    public static Connection getConnections() {        try {            //获取驱动            Class.forName(drivername);            //获取连接            Connection connection = DriverManager.getConnection(url, user, password);            return connection;        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }    //提供关闭空间方法    public static void closeAll(Connection connection,Statement statement,ResultSet resultSet) {        if (connection!=null) {            try {                connection.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        if (statement!=null) {            try {                statement.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        if (resultSet!=null) {            try {                resultSet.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }}
//数据处理:本类只提供了查询和多条插入数据的方法import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import org.junit.Test;public class DB2 {    //此方法为获取表格数据的方法    public void select() {        //获取连接        Connection connection = DBUtils.getConnections();        PreparedStatement ps = null;        ResultSet set = null;        try {            //获取能执行sql语句的PreparedStatement对象            String sql = "select * from emp";            ps = connection.prepareStatement(sql);            //执行查询得到表所有信息            set = ps.executeQuery();            //得到表信息            ResultSetMetaData meta = set.getMetaData();            //得到表列数            int count = meta.getColumnCount();            while (set.next()) {                String string = set.getString(1); //获取第一列的数据                System.out.println(string);            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        //关闭空间        DBUtils.closeAll(connection, ps, set);    }    public static boolean inserts(User[] users){        //获得连接        Connection connection = DBUtils.getConnections();        PreparedStatement ps2 = null;        try {            //-----------------插入对象----------------------            //自增长字段不包含在插入字段里            String sql2 = "insert into emp (ename,job,mgr,hiredate,salary,comm,deptno) values (?,?,?,?,?,?,?)";            ps2 = connection.prepareStatement(sql2,Statement.RETURN_GENERATED_KEYS);            for (int i = 0; i < users.length; i++) {                ps2.setString(1, users[i].getEname());                ps2.setString(2, users[i].getJob());                ps2.setInt(3, users[i].getMgr());                ps2.setDate(4, users[i].getHiredate());                ps2.setFloat(5, users[i].getSalary());                ps2.setFloat(6, users[i].getComm());                ps2.setInt(7, users[i].getDeptno());                ps2.addBatch();            }            int[] count1 = ps2.executeBatch();            if(count1.length>0) {                return true;            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            DBUtils.closeAll(null, ps2, null);        }        return false;    }}
//界面,执行插入import java.sql.Date;public class View {    public static void main(String[] args) {        User[] users = {new User("何炅", "主持人", 521, Date.valueOf("2017-5-20"), 10000, 1, 110),new User("谢娜", "主持人", 521,Date.valueOf("2017-5-20"), 9000, 11, 110)};        boolean inserts = DB.inserts(users);        System.out.println(inserts);    }}

插入运算的结果

原创粉丝点击