文章标题
来源:互联网 发布:电脑音乐合成器软件 编辑:程序博客网 时间: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); }}
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 通知Notification
- php+ajax+jsonp
- Android 进入Activity自动弹出软键盘
- Windows搭建Git仓库(Git+Copssh)
- 插入排序
- 文章标题
- Openssl编程获取证书common name
- ubuntu 分屏工具
- nexus3添加jar包
- Valid Palindrome
- Kotlin,来自初学者的心声
- CentOS配置之解决安装完成后无法上网
- JNI开发之环境搭建
- arm 汇编伪指令与位置相关代码