时间:2021-07-01 10:21:17 帮助过:3人阅读
- <span style="color: #008080;"> 1 <span style="color: #0000ff;">package<span style="color: #000000;"> com.util.db;
- <span style="color: #008080;"> 2
- <span style="color: #008080;"> 3 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.Connection;
- <span style="color: #008080;"> 4 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.DriverManager;
- <span style="color: #008080;"> 5 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.ResultSet;
- <span style="color: #008080;"> 6 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.SQLException;
- <span style="color: #008080;"> 7 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.Statement;
- <span style="color: #008080;"> 8 <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.ResourceBundle;
- <span style="color: #008080;"> 9
- <span style="color: #008080;">10 <span style="color: #008000;">/**
- <span style="color: #008080;">11 <span style="color: #008000;"> * 数据库操作工具类
- <span style="color: #008080;">12 <span style="color: #008000;"> * <span style="color: #808080;">@author<span style="color: #008000;"> lamp
- <span style="color: #008080;">13 <span style="color: #008000;"> *
- <span style="color: #008080;">14 <span style="color: #008000;">*/
- <span style="color: #008080;">15 <span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> DBUtils {
- <span style="color: #008080;">16
- <span style="color: #008080;">17 <span style="color: #008000;">//<span style="color: #008000;">数据库连接地址
- <span style="color: #008080;">18 <span style="color: #0000ff;">public <span style="color: #0000ff;">static<span style="color: #000000;"> String URL;
- <span style="color: #008080;">19 <span style="color: #008000;">//<span style="color: #008000;">用户名
- <span style="color: #008080;">20 <span style="color: #0000ff;">public <span style="color: #0000ff;">static<span style="color: #000000;"> String USERNAME;
- <span style="color: #008080;">21 <span style="color: #008000;">//<span style="color: #008000;">密码
- <span style="color: #008080;">22 <span style="color: #0000ff;">public <span style="color: #0000ff;">static<span style="color: #000000;"> String PASSWORD;
- <span style="color: #008080;">23 <span style="color: #008000;">//<span style="color: #008000;">mysql的驱动类
- <span style="color: #008080;">24 <span style="color: #0000ff;">public <span style="color: #0000ff;">static<span style="color: #000000;"> String DRIVER;
- <span style="color: #008080;">25
- <span style="color: #008080;">26 <span style="color: #0000ff;">private <span style="color: #0000ff;">static ResourceBundle rb = ResourceBundle.getBundle("com.util.db.db-config"<span style="color: #000000;">);
- <span style="color: #008080;">27
- <span style="color: #008080;">28 <span style="color: #0000ff;">private<span style="color: #000000;"> DBUtils(){}
- <span style="color: #008080;">29
- <span style="color: #008080;">30 <span style="color: #008000;">//<span style="color: #008000;">使用静态块加载驱动程序
- <span style="color: #008080;">31 <span style="color: #0000ff;">static<span style="color: #000000;">{
- <span style="color: #008080;">32 URL = rb.getString("jdbc.url"<span style="color: #000000;">);
- <span style="color: #008080;">33 USERNAME = rb.getString("jdbc.username"<span style="color: #000000;">);
- <span style="color: #008080;">34 PASSWORD = rb.getString("jdbc.password"<span style="color: #000000;">);
- <span style="color: #008080;">35 DRIVER = rb.getString("jdbc.driver"<span style="color: #000000;">);
- <span style="color: #008080;">36 <span style="color: #0000ff;">try<span style="color: #000000;"> {
- <span style="color: #008080;">37 <span style="color: #000000;"> Class.forName(DRIVER);
- <span style="color: #008080;">38 } <span style="color: #0000ff;">catch<span style="color: #000000;"> (ClassNotFoundException e) {
- <span style="color: #008080;">39 <span style="color: #000000;"> e.printStackTrace();
- <span style="color: #008080;">40 <span style="color: #000000;"> }
- <span style="color: #008080;">41 <span style="color: #000000;"> }
- <span style="color: #008080;">42 <span style="color: #008000;">//<span style="color: #008000;">定义一个获取数据库连接的方法
- <span style="color: #008080;">43 <span style="color: #0000ff;">public <span style="color: #0000ff;">static<span style="color: #000000;"> Connection getConnection(){
- <span style="color: #008080;">44 Connection conn = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;">45 <span style="color: #0000ff;">try<span style="color: #000000;"> {
- <span style="color: #008080;">46 conn =<span style="color: #000000;"> DriverManager.getConnection(URL, USERNAME, PASSWORD);
- <span style="color: #008080;">47 } <span style="color: #0000ff;">catch<span style="color: #000000;"> (SQLException e) {
- <span style="color: #008080;">48 <span style="color: #000000;"> e.printStackTrace();
- <span style="color: #008080;">49 System.out.println("获取连接失败"<span style="color: #000000;">);
- <span style="color: #008080;">50 <span style="color: #000000;"> }
- <span style="color: #008080;">51 <span style="color: #0000ff;">return<span style="color: #000000;"> conn;
- <span style="color: #008080;">52 <span style="color: #000000;"> }
- <span style="color: #008080;">53
- <span style="color: #008080;">54 <span style="color: #008000;">/**
- <span style="color: #008080;">55 <span style="color: #008000;"> * 关闭数据库连接
- <span style="color: #008080;">56 <span style="color: #008000;"> * <span style="color: #808080;">@param<span style="color: #008000;"> rs
- <span style="color: #008080;">57 <span style="color: #008000;"> * <span style="color: #808080;">@param<span style="color: #008000;"> stat
- <span style="color: #008080;">58 <span style="color: #008000;"> * <span style="color: #808080;">@param<span style="color: #008000;"> conn
- <span style="color: #008080;">59 <span style="color: #008000;">*/
- <span style="color: #008080;">60 <span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> close(ResultSet rs,Statement stat,Connection conn){
- <span style="color: #008080;">61 <span style="color: #0000ff;">try<span style="color: #000000;"> {
- <span style="color: #008080;">62 <span style="color: #0000ff;">if(rs!=<span style="color: #0000ff;">null<span style="color: #000000;">)rs.close();
- <span style="color: #008080;">63 <span style="color: #0000ff;">if(stat!=<span style="color: #0000ff;">null<span style="color: #000000;">)stat.close();
- <span style="color: #008080;">64 <span style="color: #0000ff;">if(conn!=<span style="color: #0000ff;">null<span style="color: #000000;">)conn.close();
- <span style="color: #008080;">65 } <span style="color: #0000ff;">catch<span style="color: #000000;"> (SQLException e) {
- <span style="color: #008080;">66 <span style="color: #000000;"> e.printStackTrace();
- <span style="color: #008080;">67 <span style="color: #000000;"> }
- <span style="color: #008080;">68 <span style="color: #000000;"> }
- <span style="color: #008080;">69
- <span style="color: #008080;">70 }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
注意:26行中,注意获取属性文件的包名是否正确。稍后会定义这个属性文件。
28行:既然是工具类,一般不要实例化,此时可以采用单例设计模式,或者将构造方法私有化。
26行:很明显可以看到,我们是将连接数据库的URL、用户名,密码等信息编写在一个属性文件(jdbc.properties)中,稍后再来定义这个属性文件。
31行:为避免重复代码,使用静态代码块:只会在类加载的时候执行一次。
42行:定义一个获取数据库连接的方法
60行:关闭数据库连接
(2)接下来新建一个属性文件,new-->file,命名为:db-config.properties,代码如下:
- jdbc.url=jdbc:mysql:<span style="color: #008000;">//<span style="color: #008000;">localhost:3306/jdbcdb
- jdbc.username=<span style="color: #000000;">root
- jdbc.password=<span style="color: #000000;">smyh
- jdbc.driver=com.mysql.jdbc.Driver</span></span></span></span>
以后如果需要修改配置信息,只需要在这里改就行了。注意在上面的DBUtils类中是怎么来调用这个配置信息的。
紧接着新建文件,定义好Person类:(package com.vae.domain)
- <span style="color: #008080;"> 1 <span style="color: #0000ff;">package<span style="color: #000000;"> com.vae.domain;
- <span style="color: #008080;"> 2
- <span style="color: #008080;"> 3 <span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> Person {
- <span style="color: #008080;"> 4 <span style="color: #0000ff;">private <span style="color: #0000ff;">int<span style="color: #000000;"> id;
- <span style="color: #008080;"> 5 <span style="color: #0000ff;">private<span style="color: #000000;"> String name;
- <span style="color: #008080;"> 6 <span style="color: #0000ff;">private <span style="color: #0000ff;">int<span style="color: #000000;"> age;
- <span style="color: #008080;"> 7 <span style="color: #0000ff;">private<span style="color: #000000;"> String description;
- <span style="color: #008080;"> 8 <span style="color: #0000ff;">public <span style="color: #0000ff;">int<span style="color: #000000;"> getId() {
- <span style="color: #008080;"> 9 <span style="color: #0000ff;">return<span style="color: #000000;"> id;
- <span style="color: #008080;">10 <span style="color: #000000;"> }
- <span style="color: #008080;">11 <span style="color: #0000ff;">public <span style="color: #0000ff;">void setId(<span style="color: #0000ff;">int<span style="color: #000000;"> id) {
- <span style="color: #008080;">12 <span style="color: #0000ff;">this.id =<span style="color: #000000;"> id;
- <span style="color: #008080;">13 <span style="color: #000000;"> }
- <span style="color: #008080;">14 <span style="color: #0000ff;">public<span style="color: #000000;"> String getName() {
- <span style="color: #008080;">15 <span style="color: #0000ff;">return<span style="color: #000000;"> name;
- <span style="color: #008080;">16 <span style="color: #000000;"> }
- <span style="color: #008080;">17 <span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> setName(String name) {
- <span style="color: #008080;">18 <span style="color: #0000ff;">this.name =<span style="color: #000000;"> name;
- <span style="color: #008080;">19 <span style="color: #000000;"> }
- <span style="color: #008080;">20 <span style="color: #0000ff;">public <span style="color: #0000ff;">int<span style="color: #000000;"> getAge() {
- <span style="color: #008080;">21 <span style="color: #0000ff;">return<span style="color: #000000;"> age;
- <span style="color: #008080;">22 <span style="color: #000000;"> }
- <span style="color: #008080;">23 <span style="color: #0000ff;">public <span style="color: #0000ff;">void setAge(<span style="color: #0000ff;">int<span style="color: #000000;"> age) {
- <span style="color: #008080;">24 <span style="color: #0000ff;">this.age =<span style="color: #000000;"> age;
- <span style="color: #008080;">25 <span style="color: #000000;"> }
- <span style="color: #008080;">26 <span style="color: #0000ff;">public<span style="color: #000000;"> String getDescription() {
- <span style="color: #008080;">27 <span style="color: #0000ff;">return<span style="color: #000000;"> description;
- <span style="color: #008080;">28 <span style="color: #000000;"> }
- <span style="color: #008080;">29 <span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> setDescription(String description) {
- <span style="color: #008080;">30 <span style="color: #0000ff;">this.description =<span style="color: #000000;"> description;
- <span style="color: #008080;">31 <span style="color: #000000;"> }
- <span style="color: #008080;">32 <span style="color: #0000ff;">public Person(<span style="color: #0000ff;">int id, String name, <span style="color: #0000ff;">int<span style="color: #000000;"> age, String description) {
- <span style="color: #008080;">33 <span style="color: #0000ff;">super<span style="color: #000000;">();
- <span style="color: #008080;">34 <span style="color: #0000ff;">this.id =<span style="color: #000000;"> id;
- <span style="color: #008080;">35 <span style="color: #0000ff;">this.name =<span style="color: #000000;"> name;
- <span style="color: #008080;">36 <span style="color: #0000ff;">this.age =<span style="color: #000000;"> age;
- <span style="color: #008080;">37 <span style="color: #0000ff;">this.description =<span style="color: #000000;"> description;
- <span style="color: #008080;">38 <span style="color: #000000;"> }
- <span style="color: #008080;">39 <span style="color: #0000ff;">public Person(String name, <span style="color: #0000ff;">int<span style="color: #000000;"> age, String description) {
- <span style="color: #008080;">40 <span style="color: #0000ff;">super<span style="color: #000000;">();
- <span style="color: #008080;">41 <span style="color: #0000ff;">this.name =<span style="color: #000000;"> name;
- <span style="color: #008080;">42 <span style="color: #0000ff;">this.age =<span style="color: #000000;"> age;
- <span style="color: #008080;">43 <span style="color: #0000ff;">this.description =<span style="color: #000000;"> description;
- <span style="color: #008080;">44 <span style="color: #000000;"> }
- <span style="color: #008080;">45 <span style="color: #0000ff;">public<span style="color: #000000;"> Person() {
- <span style="color: #008080;">46 <span style="color: #0000ff;">super<span style="color: #000000;">();
- <span style="color: #008080;">47 <span style="color: #008000;">//<span style="color: #008000;"> TODO Auto-generated constructor stub
- <span style="color: #008080;">48 <span style="color: #000000;"> }
- <span style="color: #008080;">49 <span style="color: #000000;"> @Override
- <span style="color: #008080;">50 <span style="color: #0000ff;">public<span style="color: #000000;"> String toString() {
- <span style="color: #008080;">51 <span style="color: #0000ff;">return "Person [id=" + id + ", name=" + name + ", age=" +<span style="color: #000000;"> age
- <span style="color: #008080;">52 + ", description=" + description + "]"<span style="color: #000000;">;
- <span style="color: #008080;">53 <span style="color: #000000;"> }
- <span style="color: #008080;">54
- <span style="color: #008080;">55
- <span style="color: #008080;">56 }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
这个Person类就是领域模型,表示是对它进行增删改查。
(3)定义PersonDao接口:专门对Person类进行操作(例如增删改查)的接口(package com.vae.dao)
- <span style="color: #0000ff;">package<span style="color: #000000;"> com.vae.dao;
- <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.SQLException;
- <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.List;
- <span style="color: #0000ff;">import<span style="color: #000000;"> com.vae.domain.Person;
- <span style="color: #0000ff;">public <span style="color: #0000ff;">interface<span style="color: #000000;"> PersonDao {
- <span style="color: #008000;">//<span style="color: #008000;">添加方法
- <span style="color: #0000ff;">public <span style="color: #0000ff;">void add(Person p)<span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException;
- <span style="color: #008000;">//<span style="color: #008000;">更新方法
- <span style="color: #0000ff;">public <span style="color: #0000ff;">void update(Person p)<span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException;
- <span style="color: #008000;">//<span style="color: #008000;">删除方法
- <span style="color: #0000ff;">public <span style="color: #0000ff;">void delete(<span style="color: #0000ff;">int id)<span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException;
- <span style="color: #008000;">//<span style="color: #008000;">查找方法
- <span style="color: #0000ff;">public Person findById(<span style="color: #0000ff;">int id)<span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException;
- <span style="color: #008000;">//<span style="color: #008000;">查找所有
- <span style="color: #0000ff;">public List<Person> findAll()<span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException;
- }<span style="font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.5;"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
(4)定义PeronDaoImpl实现类 ,实现上面的PeronDao接口(package com.vae.dao.impl)
- <span style="color: #008080;"> 1 <span style="color: #0000ff;">package<span style="color: #000000;"> com.vae.dao.impl;
- <span style="color: #008080;"> 2
- <span style="color: #008080;"> 3 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.Connection;
- <span style="color: #008080;"> 4 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.PreparedStatement;
- <span style="color: #008080;"> 5 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.ResultSet;
- <span style="color: #008080;"> 6 <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.SQLException;
- <span style="color: #008080;"> 7 <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.ArrayList;
- <span style="color: #008080;"> 8 <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.List;
- <span style="color: #008080;"> 9
- <span style="color: #008080;"> 10 <span style="color: #0000ff;">import<span style="color: #000000;"> com.util.db.DBUtils;
- <span style="color: #008080;"> 11 <span style="color: #0000ff;">import<span style="color: #000000;"> com.vae.dao.PersonDao;
- <span style="color: #008080;"> 12 <span style="color: #0000ff;">import<span style="color: #000000;"> com.vae.domain.Person;
- <span style="color: #008080;"> 13
- <span style="color: #008080;"> 14 <span style="color: #008000;">/**
- <span style="color: #008080;"> 15 <span style="color: #008000;"> * PersonDao的具体实现类
- <span style="color: #008080;"> 16 <span style="color: #008000;"> * <span style="color: #808080;">@author<span style="color: #008000;"> lamp
- <span style="color: #008080;"> 17 <span style="color: #008000;"> *
- <span style="color: #008080;"> 18 <span style="color: #008000;">*/
- <span style="color: #008080;"> 19 <span style="color: #0000ff;">public <span style="color: #0000ff;">class PersonDaoImpl <span style="color: #0000ff;">implements<span style="color: #000000;"> PersonDao{
- <span style="color: #008080;"> 20
- <span style="color: #008080;"> 21 <span style="color: #008000;">/**
- <span style="color: #008080;"> 22 <span style="color: #008000;"> * 实现添加方法
- <span style="color: #008080;"> 23 <span style="color: #008000;">*/
- <span style="color: #008080;"> 24 <span style="color: #000000;"> @Override
- <span style="color: #008080;"> 25 <span style="color: #0000ff;">public <span style="color: #0000ff;">void add(Person p) <span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException {
- <span style="color: #008080;"> 26 Connection conn = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;"> 27 PreparedStatement ps = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;"> 28 String sql = "insert into person(name,age,description)values(?,?,?)"<span style="color: #000000;">;
- <span style="color: #008080;"> 29 <span style="color: #0000ff;">try<span style="color: #000000;">{
- <span style="color: #008080;"> 30 conn =<span style="color: #000000;"> DBUtils.getConnection();
- <span style="color: #008080;"> 31 ps =<span style="color: #000000;"> conn.prepareStatement(sql);
- <span style="color: #008080;"> 32 ps.setString(1<span style="color: #000000;">, p.getName());
- <span style="color: #008080;"> 33 ps.setInt(2<span style="color: #000000;">, p.getAge());
- <span style="color: #008080;"> 34 ps.setString(3<span style="color: #000000;">, p.getDescription());
- <span style="color: #008080;"> 35 <span style="color: #000000;"> ps.executeUpdate();
- <span style="color: #008080;"> 36 }<span style="color: #0000ff;">catch<span style="color: #000000;">(SQLException e){
- <span style="color: #008080;"> 37 <span style="color: #000000;"> e.printStackTrace();
- <span style="color: #008080;"> 38 <span style="color: #0000ff;">throw <span style="color: #0000ff;">new SQLException("添加数据失败"<span style="color: #000000;">);
- <span style="color: #008080;"> 39 }<span style="color: #0000ff;">finally<span style="color: #000000;">{
- <span style="color: #008080;"> 40 DBUtils.close(<span style="color: #0000ff;">null<span style="color: #000000;">, ps, conn);
- <span style="color: #008080;"> 41 <span style="color: #000000;"> }
- <span style="color: #008080;"> 42 <span style="color: #000000;"> }
- <span style="color: #008080;"> 43
- <span style="color: #008080;"> 44 <span style="color: #008000;">/**
- <span style="color: #008080;"> 45 <span style="color: #008000;"> * 更新方法
- <span style="color: #008080;"> 46 <span style="color: #008000;">*/
- <span style="color: #008080;"> 47 <span style="color: #000000;"> @Override
- <span style="color: #008080;"> 48 <span style="color: #0000ff;">public <span style="color: #0000ff;">void update(Person p) <span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException {
- <span style="color: #008080;"> 49 Connection conn = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;"> 50 PreparedStatement ps = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;"> 51 String sql = "update person set name=?,age=?,description=? where id=?"<span style="color: #000000;">;
- <span style="color: #008080;"> 52 <span style="color: #0000ff;">try<span style="color: #000000;">{
- <span style="color: #008080;"> 53 conn =<span style="color: #000000;"> DBUtils.getConnection();
- <span style="color: #008080;"> 54 ps =<span style="color: #000000;"> conn.prepareStatement(sql);
- <span style="color: #008080;"> 55 ps.setString(1<span style="color: #000000;">, p.getName());
- <span style="color: #008080;"> 56 ps.setInt(2<span style="color: #000000;">, p.getAge());
- <span style="color: #008080;"> 57 ps.setString(3<span style="color: #000000;">, p.getDescription());
- <span style="color: #008080;"> 58 ps.setInt(4<span style="color: #000000;">, p.getId());
- <span style="color: #008080;"> 59 <span style="color: #000000;"> ps.executeUpdate();
- <span style="color: #008080;"> 60 }<span style="color: #0000ff;">catch<span style="color: #000000;">(SQLException e){
- <span style="color: #008080;"> 61 <span style="color: #000000;"> e.printStackTrace();
- <span style="color: #008080;"> 62 <span style="color: #0000ff;">throw <span style="color: #0000ff;">new SQLException("更新数据失败"<span style="color: #000000;">);
- <span style="color: #008080;"> 63 }<span style="color: #0000ff;">finally<span style="color: #000000;">{
- <span style="color: #008080;"> 64 DBUtils.close(<span style="color: #0000ff;">null<span style="color: #000000;">, ps, conn);
- <span style="color: #008080;"> 65 <span style="color: #000000;"> }
- <span style="color: #008080;"> 66 <span style="color: #000000;"> }
- <span style="color: #008080;"> 67
- <span style="color: #008080;"> 68 <span style="color: #008000;">/**
- <span style="color: #008080;"> 69 <span style="color: #008000;"> * 删除方法
- <span style="color: #008080;"> 70 <span style="color: #008000;">*/
- <span style="color: #008080;"> 71 <span style="color: #000000;"> @Override
- <span style="color: #008080;"> 72 <span style="color: #0000ff;">public <span style="color: #0000ff;">void delete(<span style="color: #0000ff;">int id) <span style="color: #0000ff;">throws<span style="color: #000000;"> SQLException {
- <span style="color: #008080;"> 73 Connection conn = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;"> 74 PreparedStatement ps = <span style="color: #0000ff;">null<span style="color: #000000;">;
- <span style="color: #008080;"> 75 String sql = "delete from person where id=?"<span style="color: #000000;">;
- <span style="color: #008080;"> 76 <span style="color: #0000ff;">try<span style="color: #000000;">{
- <span style="color: #008080;"> 77 conn =<span style="color: #000000;"> DBUtils.getConnection();
- <span style="color: #008080;"> 78 ps =<span style="color: #000000;"> conn.prepareStatement(sql);
- <span style="color: #008080;"> 79 ps.setInt(1<span style="color: #000000;">,id);
- 80 ps.executeUpdate();
- 81 }catch(SQLException e){
- 82 e.printStackTrace();
- 83 throw new SQLException(" 删除数据失败");
- 84 }finally{
- 85 DBUtils.close(null, ps, conn);
- 86 }
- 87 }
- 88
- 89 /**
- 90 * 根据ID查询一个对象
- 91 */
- 92 @Override
- 93 public Person findById(int id) throws SQLException {
- 94 Connection conn = null;
- 95 PreparedStatement ps = null;
- 96 ResultSet rs = null;
- 97 Person p = null;
- 98 String sql = "select name,age,description from person where id=?";
- 99 try{
- 100 conn = DBUtils.getConnection();
- 101 ps = conn.prepareStatement(sql);
- 102 ps.setInt(1, id);
- 103 rs = ps.executeQuery();
- 104 if(rs.next()){
- 105 p = new Person();
- 106 p.setId(id);
- 107 p.setName(rs.getString(1));
- 108 p.setAge(rs.getInt(2));
- 109 p.setDescription(rs.getString(3));
- 110 }
- 111 }catch(SQLException e){
- 112 e.printStackTrace();
- 113 throw new SQLException("根据ID查询数据失败");
- 114 }finally{
- 115 DBUtils.close(rs, ps, conn);
- 116 }
- 117 return p;
- 118 }
- 119
- 120 /**
- 121 * 查询所有数据
- 122 */
- 123 @Override
- 124 public List<Person> findAll() throws SQLException {
- 125 Connection conn = null;
- 126 PreparedStatement ps = null;
- 127 ResultSet rs = null;
- 128 Person p = null;
- 129 List<Person> persons = new ArrayList<Person>();
- 130 String sql = "select id,name,age,description from person";
- 131 try{
- 132 conn = DBUtils.getConnection();
- 133 ps = conn.prepareStatement(sql);
- 134 rs = ps.executeQuery();
- 135 while(rs.next()){
- 136 p = new Person();
- 137 p.setId(rs.getInt(1));
- 138 p.setName(rs.getString(2));
- 139 p.setAge(rs.getInt(3));
- 140 p.setDescription(rs.getString(4));
- 141 persons.add(p);
- 142 }
- 143 }catch(SQLException e){
- 144 e.printStackTrace();
- 145 throw new SQLException("查询所有数据失败");
- 146 }finally{
- 147 DBUtils.close(rs, ps, conn);
- 148 }
- 149 return persons;
- 150 }
- 151
- 152 }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
标签: