企业网站主页设计,工作态度和责任心句子,网站开发的实训周的实训过程,网站设置flash插件1、实验目的 学习和掌握数据库连接池的配置与管理。使用DBUtils进行增删改查操作。按照步骤#xff0c;掌握并实现使用DBUtils实现增删改查的全过程。 2、实验所用方法 上机实践 3、实验步骤及截图 创建一个数据库表#xff0c;使用下面sql语句创建数据库表并插入数据#x… 1、实验目的 学习和掌握数据库连接池的配置与管理。使用DBUtils进行增删改查操作。按照步骤掌握并实现使用DBUtils实现增删改查的全过程。 2、实验所用方法 上机实践 3、实验步骤及截图 创建一个数据库表使用下面sql语句创建数据库表并插入数据 CREATE TABLE USER(
id INT(3) PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
PASSWORD VARCHAR(20) NOT NULL
);INSERT INTO USER(NAME,PASSWORD) VALUES (zhangsan,123456);
INSERT INTO USER(NAME,PASSWORD) VALUES (lisi,123456);
INSERT INTO USER(NAME,PASSWORD) VALUES (wangwu,123456); 在项目chapter11的目录下创建一个名为cn.itcast.jdbc.javabean的包创建实体类User用于封装User对象 package cn.itcast.jdbc.javabean;
public class User {private int id;private String name;private String password;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;}
}在项目chapter11的src目录下创建一个名为cn.itcast.jdbc.utils的包然后在该包下创建C3p0Utils类用于创建数据源 package cn.itcast.jdbc.utils;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Utils {private static DataSource ds;static {ds new ComboPooledDataSource();}public static DataSource getDataSource() {return ds;}
}连接数据库不要忘记写JDBCUtils.java package cn.itcast.chapter11.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtils {// 加载驱动并建立数据库连接public static Connection getConnection() throws SQLException,ClassNotFoundException {Class.forName(com.mysql.cj.jdbc.Driver);String url jdbc:mysql://localhost:3306/jdbc?serverTimezoneGMT%2B8;String username root;String password root;Connection conn DriverManager.getConnection(url, username,password);return conn;}// 关闭数据库连接释放资源public static void release(Statement stmt, Connection conn) {if (stmt ! null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}stmt null;}if (conn ! null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn null;}}public static void release(ResultSet rs, Statement stmt,Connection conn){if (rs ! null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs null;}release(stmt, conn);}
}在项目chapter11的src目录下创建一个名为cn.itcast.jdbc.dao的包然后在该包下创建一个InsertDao类实现对user表插入数据的操作 package cn.itcast.jdbc.dao;
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import cn.itcast.jdbc.javabean.User;
import cn.itcast.jdbc.utils.C3p0Utils;
public class InsertDao {public static void main(String[] args)throws SQLException{// 创建QueryRunner对象QueryRunner runner new QueryRunner(C3p0Utils.getDataSource());String sql insert into user (name,password) values (hello1,123456);int num runner.update(sql);if (num 0){System.out.println(添加成功);}else{System.out.println(添加失败);}}
}文件InsertDao的运行结果 在cn.itcast.jdbc.dao包下创建一个UpdateDao类实现对user表数据的修改操作。UpdateDao类的实现如下所示: package cn.itcast.jdbc.dao;
import cn.itcast.jdbc.javabean.User;
import cn.itcast.jdbc.utils.C3p0Utils;
import org.apache.commons.dbutils.QueryRunner;
import java.sql.SQLException;
public class UpdateDao {public static void main(String[] args)throws SQLException {// 创建QueryRunner对象QueryRunner runner new QueryRunner(C3p0Utils.getDataSource());// 写SQL语句String sql update user set namehello2,password111111 where namehello1;// 调用方法int num runner.update(sql);if (num 0){System.out.println(修改成功);}else{System.out.println(修改失败);}}
}文件UpdateDao的运行结果如下图所示: 在cn.itcast.jdbc.dao包下创建一个DeleteDao类实现对user表数据的删除操作: package cn.itcast.jdbc.dao;
import cn.itcast.jdbc.utils.C3p0Utils;
import org.apache.commons.dbutils.QueryRunner;
import java.sql.SQLException;
public class DeleteDao {public static void main(String[] args)throws SQLException {// 创建QueryRunner对象QueryRunner runner new QueryRunner(C3p0Utils.getDataSource());// 写SQL语句String sql delete from user where namehello2;// 调用方法int num runner.update(sql);if (num 0){System.out.println(删除成功);}else{System.out.println(删除失败);}}
}在cn.itcast.jdbc.dao包下创建一个QueryDao类实现对user表中单条数据的查询操作: package cn.itcast.jdbc.dao;
import cn.itcast.jdbc.javabean.User;
import cn.itcast.jdbc.utils.C3p0Utils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;
import java.util.List;public class QueryDao {public static void main(String[] args)throws SQLException {// 创建QueryRunner对象QueryRunner runner new QueryRunner(C3p0Utils.getDataSource());// 写SQL语句String sql select * from user where id2;// 调用方法User user (User) runner.query(sql,new BeanHandler(User.class));System.out.println(user.getId(),user.getName(),user.getPassword());}
}修改后 package cn.itcast.jdbc.dao;
import cn.itcast.jdbc.javabean.User;
import cn.itcast.jdbc.utils.C3p0Utils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;
import java.util.List;public class QueryDao {public static void main(String[] args)throws SQLException {// 创建QueryRunner对象QueryRunner runner new QueryRunner(C3p0Utils.getDataSource());// 写SQL语句String sql select * from user;// 调用方法ListUser list (List) runner.query(sql,new BeanListHandler(User.class));for(User user : list){System.out.println(user.getId(),user.getName(),user.getPassword());}}
}4、实验过程中出现的问题 在实验过程中我遇到了一些挑战如配置参数不合理导致连接池性能下降、SQL语句编写错误导致操作失败等。但通过不断调试和修改我逐渐克服了这些困难并成功实现了预期的实验目标。 5、实验心得 在本次实验中我深入学习了数据库连接池的配置与管理并掌握了使用DBUtils进行增删改查操作的全过程。通过实际操作我对数据库连接池的工作原理和DBUtils的便捷性有了更深刻的理解。 实验初期我首先了解了数据库连接池的基本概念和作用。连接池能够显著提高数据库的访问效率减少数据库连接的建立和销毁次数从而优化系统性能。随后我学习了如何配置和管理数据库连接池包括设置连接池的大小、连接超时时间等关键参数。 在掌握了数据库连接池的基础知识后我开始学习DBUtils的使用。DBUtils是一个简化JDBC编程的工具类库它提供了对数据库操作的封装使开发者能够更加便捷地进行数据库操作。我通过查阅文档和示例代码逐步掌握了DBUtils的使用方法并实现了对数据库的增删改查操作。 通过这次实验我深刻体会到了理论与实践相结合的重要性。只有将所学知识应用到实际操作中才能真正理解和掌握。同时我也认识到了自己在数据库管理方面的不足之处如对于复杂SQL语句的编写和调优还需要进一步加强学习。 展望未来我将继续深入学习数据库管理相关知识不断提升自己的专业技能水平为未来的职业发展打下坚实的基础。