使用JDBC对数据库进行CRUD
来源:互联网 发布:哪个软件直播笑傲江湖 编辑:程序博客网 时间:2024/04/30 13:47
statement对象介绍
Jdbc中的Statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。
Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)。
Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的ResultSet对象。
使用JDBC对数据库增删改查
搭建实验环境
在mysql中创建一个库,并创建user表以及插入一些数据。SQL脚本如下:
create database day14;use day14;create table users ( id int primary key, name varchar(40), password varchar(40), email varchar(60), birthday date);insert into users(id,name,password,email,birthday) values(1,'zs','123456','zs@sina.com','1980-12-04');insert into users(id,name,password,email,birthday) values(2,'lisi','123456','lisi@sina.com','1981-12-04');insert into users(id,name,password,email,birthday) values(3,'wangwu','123456','wangwu@sina.com','1979-12-04');
接下来我们编写程序对users表进行CRUD(增删改查)操作,为了更通用,应编写一个工具类来简化CRUD操作。(工具类中的异常暂不处理)
- 新建一个JavaWeb工程,并导入MySQL数据库驱动。
在src目录下创建一个db.properties文件,如下图所示:
在db.properties中编写MySQL数据库的连接信息,代码如下所示:driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/day14username=rootpassword=yezi
在cn.itcast.utils包下编写一个JdbcUtils工具类,如下图所示:
JdbcUtils工具类用于连接数据库,获取数据库连接和释放数据库连接,代码如下:public class JdbcUtils { private static Properties config = new Properties(); // 静态代码块只执行一次,因为静态代码块在类加载时执行,类永远只加载一次 static { try { config.load(JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties")); Class.forName(config.getProperty("driver")); } catch (Exception e) { /* * db.properties文件都无法读取,那么整个应用程序无法连接数据库; * 驱动都加载不了,那么整个应用程序都无法工作, * 所以都应该抛一个错误(ExceptionInInitializerError) */ throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(config.getProperty("url"), config.getProperty("username"), config.getProperty("password")); } public static void release(Connection conn, Statement st, ResultSet rs) { if (rs!=null) { try { rs.close(); // 假设throw异常 } catch (Exception e) { e.printStackTrace(); // 只需在后台记录异常 } rs = null; // 假设rs对象没有释放,将其置为null,该对象就变成垃圾,由Java垃圾回收器回收 } if (st!=null) { try { st.close(); // 假设throw异常 } catch (Exception e) { e.printStackTrace(); // 只需在后台记录异常 } st = null; } if (conn!=null) { try { conn.close(); } catch (Exception e) { e.printStackTrace(); // 只需在后台记录异常 } } }}
对于数据库里面的每一张表,我们都应该创建一个对应的java类,所以对应数据库中的users表,应创建一个User类,从users表查询出来的数据,我们就可以用User类来封装其数据了。
在cn.itcast.domain包中创建一个User类,如下所示:
User类的代码如下所示:public class User { private int id; private String name; private String password; private String email; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; }}
使用statement对象完成对数据库的CRUD操作
CRUD操作-create
使用executeUpdate(String sql)方法完成数据添加操作。
public void insert() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); st = conn.createStatement(); String sql = "insert into users(id,name,password,email,birthday) values(4,'liayun','123321','liayun@163.com','1992-10-06')"; int num = st.executeUpdate(sql); if (num>0) { System.out.println("插入成功!!!"); } } finally { JdbcUtils.release(conn, st, rs); }}
CRUD操作-updata
使用executeUpdate(String sql)方法完成数据修改操作。
public void update() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); st = conn.createStatement(); String sql = "update users set name='liyunling' where id='4'"; int num = st.executeUpdate(sql); if (num>0) { System.out.println("更新成功!!!"); } } finally { JdbcUtils.release(conn, st, rs); }}
CRUD操作-delete
使用executeUpdate(String sql)方法完成数据删除操作。
public void delete() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); st = conn.createStatement(); String sql = "delete from users where id=4"; int num = st.executeUpdate(sql); if (num>0) { System.out.println("删除成功!!!"); } } finally { JdbcUtils.release(conn, st, rs); }}
CRUD操作-read
使用executeQuery(String sql)方法完成数据查询操作。
根据id来查询用户信息。
public void find() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); st = conn.createStatement(); String sql = "select id,name,password,email,birthday from users where id=1"; rs = st.executeQuery(sql); User user = null; if(rs.next()) { user = new User(); user.setId(rs.getInt("id"));// === user.getId(rs.getInt(1)); user.setName(rs.getString("name")); user.setPassword(rs.getString("password")); user.setEmail(rs.getString("email")); user.setBirthday(rs.getDate("birthday")); } System.out.println(user); } finally { JdbcUtils.release(conn, st, rs); }}
查询所有用户的信息。
public void getAll() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); st = conn.createStatement(); String sql = "select id,name,password,email,birthday from users"; rs = st.executeQuery(sql); List<User> list = new ArrayList<User>(); while(rs.next()) { User user = new User(); user.setId(rs.getInt("id"));// === user.getId(rs.getInt(1)); user.setName(rs.getString("name")); user.setPassword(rs.getString("password")); user.setEmail(rs.getString("email")); user.setBirthday(rs.getDate("birthday")); list.add(user); } System.out.println(list); // 断点查看 } finally { JdbcUtils.release(conn, st, rs); }}
- 使用JDBC对数据库进行CRUD
- 使用JDBC对数据库进行CRUD
- 使用JDBC对数据库进行CRUD
- 使用JDBC对数据库进行CRUD的操作
- 使用JDBC对数据库进行CRUD(二)
- 深入分析JavaWeb Item28 -- 使用JDBC对数据库进行CRUD
- 深入分析JavaWeb 28 -- 使用JDBC对数据库进行CRUD
- 使用JDBC对数据库进行CRUD(转)
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
- JavaWeb学习总结(三十三)——使用JDBC对数据库进行CRUD
- java web学习总结33:使用JDBC对数据库进行CRUD
- 对数据库进行CRUD
- JDBC进行数据库的CRUD
- jdbc-使用DBUtils进行crud
- Debugging segmentation fault
- 数论--简述同余关系及其部分性质
- 谈谈Android里的Context的使用!
- OC篇--数据类型
- u-boot-2016.05移植:(5)、支持DM9000网卡
- 使用JDBC对数据库进行CRUD
- wireshark怎么抓包、wireshark抓包详细图文教程
- easyUI批量删除,向后台传数组
- 15. 3Sum
- 欢迎使用CSDN-markdown编辑器
- typeof和instanceof用法
- C++ String类实现以及初始化原理和析构顺序
- spring @Scheduled注解使用误区,强烈建议同胞们看。
- ARM LINUX 扩展串口