实现数据库和java代码的交互。

数据池C3P0、数据库mysql和DbUtils框架的联合运用

准备工作

需要准备好c3p0的数据池jar包、C3P0-config.xml文件、mysql数据库 jar包和最重要的DbUtils框架jar包并在mysql数据库中创建一个student的数据表(如图所示)。
在这里插入图片描述

配置文件

1.在项目里创建一个lib问价夹把上述三个jar放进去并(单击鼠标右键)buildpath产生如下图所示的效果。
在这里插入图片描述这时我们的jar包就可以使用了。
2、比我们c3p0.xml配置文件修改相关的路径和数据库名称(如同所示)
在这里插入图片描述

运用代码把数据库中数据进行增、删、改、查。

准备好如上的工作我们就可以通过java代码对数据表进行增删查改操作了
1、创建一个学生类javabean

下面展示一些 内联代码片

下面展示一些 内联代码片

//javabean
public class Student {
	private int id;
	private String name;
	private int password;
	private String city;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(int id, String name, int password, String city) {
		super();
		this.id = id;
		this.name = name;
		this.password = password;
		this.city = city;
	}
	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 int getPassword() {
		return password;
	}
	public void setPassword(int password) {
		this.password = password;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	@Override
	public String toString() {
		return "Studnt [id=" + id + ", name=" + name + ", password=" + password + ", city=" + city + "]";
	}

2、加载数据池驱动创建连接

下面展示一些 内联代码片

private static DataSource dataSource = new ComboPooledDataSource();

	// 创建连接
	public static DataSource getDataSource() throws Exception {
		return dataSource;
	}
	public static Connection getConnction() {
		try {
			return dataSource.getConnection();
		} catch (SQLException e) {
			throw new RuntimeException("连接失败");	
		}
	}
	public static void release(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();
			}
		}
	}

3.对数据进行增删改查操作

下面展示一些 内联代码片

// 查找一个学生
	public void select() throws Exception {
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		// 编写sql语句
		String sql = "select * from student where name = ?";
		Object params[] = {"sws"};
		BeanHandler<Student> beanHandler = new BeanHandler<Student>(Student.class);
		//执行sql语句
		Student student = queryRunner.query(sql,beanHandler ,params);
		System.out.println(student);
	}
	
	//查询全部学生
	public void selectAll() throws Exception {
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写SQL语句
		String sql = "select * from student";
		BeanListHandler<Student> beanListHandler = new BeanListHandler<Student>(Student.class);
		//执行sql语句
		List<Student> student = queryRunner.query(sql, beanListHandler);
		for(Student s:student) {
			System.out.println(s);
		}
	}
	//增加学生
	public void update() throws Exception {
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写sql语句
		String sql = "insert into student(id,name,password,city) values(?,?,?,?)";
		Object parmas[] = {5,"cz",2222,"曲靖"};
		//执行语句
		int update = queryRunner.update(sql, parmas);
		if (update>0) {
			System.out.println("添加成功");
		}else {
			System.out.println("添加失败");
		}
	}
	//删除学生
	public void delete() throws Exception {
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写sql语句
		String sql = "delete from student where name =?";
		Object parmas[] = {"cz"};
		//执行语句
		int update = queryRunner.update(sql, parmas);
		if (update>0) {
			System.out.println("删除成功");
		}else {
			System.out.println("删除失败");
		}
	}
	//修改学生
	public void insert() throws Exception {
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写sql语句
		String sql = "update student set password=? where name=? ";
		Object parmas[] = {9621,"lm"};
		//执行sql语句
		int update = queryRunner.update(sql, parmas);
		if (update>0) {
			System.out.println("修改成功");
		}else {
			System.out.println("修改失败");
		}
	}

4.最后通过一个Test类调用被封装好的增删改查方法

下面展示一些 内联代码片

public static void main(String[] args) {
		StudentDao dao = new StudentDao();
		try {
//			查询一个学生
//			dao.select();

//			查询全部学生
//			dao.selectAll();

//			修改学生
//			dao.update();

//			删除学生
//			dao.delete();

//			插入学生
			dao.insert();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

总结

在进行数据交互的过程中需要注意,数据池文件的配置和路径,其次是相关的jar包的准备工作。如果有不懂的小伙伴可以私信我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值