4.22c3p0的使用

怎么使用C3P0
a)导入jar

b)添加c3p0的配置文件
创建source folder的文件夹添加配置文件(配置文件的名字c3p0-config.xml 是固定的,不能瞎写)

<?xml version="1.0" encoding="UTF-8"?> root root jdbc:mysql://127.0.0.1:3306/7505test com.mysql.jdbc.Driver 5 20 5000 5

c)从连接池中获取数据源
可以编写工具类(专门获取连接对象)
包名 com.xx.utils

import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Util {
//queryRunner DButils框架提供通过C3P0操作数据库的一个对象
private static QueryRunner queryRunner;

public static QueryRunner getQueryRunner() {
//dataSource 数据源
DataSource dataSource=new ComboPooledDataSource();
queryRunner=new QueryRunner(dataSource);

return queryRunner;

}

}
d)Dao层通过C3P0实现查询
public class SubjectDaoMySqlImpl implements SubjectDao {

private QueryRunner queryRunner;

@Override
public List<Subject> querySubjects() {
	// 贾琏欲执事-->很繁琐--》使用c3p0进行改写
	queryRunner = C3P0Util.getQueryRunner();
	String sql = "select  * from  `subject` ";
	List<Subject> subjects=null;
	// 直接将查询的结果转为 对象
	try {
		//实体类SUbject的属性名需要与列名一致
		 subjects = queryRunner.query(sql, new BeanListHandler<Subject>(Subject.class));
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	return subjects;
}

}

扫描二维码关注公众号,回复: 6185161 查看本文章

C3P0实现增删改查
实现新增
1.编写表现层
static SubjectService subjectService=new SubjectServiceImpl();
public static void addSUbject() {
Subject subject=new Subject();
subject.setClasshour(44);
subject.setGradeid(1);
subject.setSubjectname(“测试”);
//调用业务逻辑
int num= subjectService.addSubject(subject);
}
2.编写业务逻辑层

3.编写dao层

@Override
public int addSubject(Subject subject) {
queryRunner=C3P0Util.getQueryRunner();
String sql=“insert into subject values(NULL,?,?,?)”;
int num=0;
try {
num= queryRunner.update(sql, subject.getSubjectname(),subject.getClasshour(),subject.getGradeid());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return num;
}

实现删改查
Dao层
接口
/**

  • 数据访问层接口
  • @author Administrator

*/
public interface SubjectDao {

List<Subject> querySubjects();
int  addSubject(Subject subject);

int deleteSubjectByID(int id);
int updateSubject(Subject subject);
//根据id查询
Subject  queryByID(int id);
//查询科目数量
int subjectCount();

}
Dao实现类
public class SubjectDaoMySqlImpl implements SubjectDao {

private QueryRunner queryRunner;

@Override
public List<Subject> querySubjects() {
	// 贾琏欲执事-->很繁琐--》使用c3p0进行改写
	queryRunner = C3P0Util.getQueryRunner();
	String sql = "select  * from  `subject` ";
	List<Subject> subjects=null;
	// 直接将查询的结果转为 对象
	try {
		//实体类SUbject的属性名需要与列名一致
		 subjects = queryRunner.query(sql, new BeanListHandler<Subject>(Subject.class));
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	return subjects;
}

@Override
public int addSubject(Subject subject) {
	queryRunner=C3P0Util.getQueryRunner();
	String sql="insert into `subject` values(NULL,?,?,?)";
	int num=0;
	try {
	num=	queryRunner.update(sql, subject.getSubjectname(),subject.getClasshour(),subject.getGradeid());
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return num;
}

@Override
public int deleteSubjectByID(int id) {
	queryRunner=C3P0Util.getQueryRunner();
	String sql="delete  from  `subject`  where SubjectId=?";
	int num=0;
	 try {
	num=	queryRunner.update(sql,id);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return num;
}

@Override
public int updateSubject(Subject subject) {
	queryRunner=C3P0Util.getQueryRunner();
	String sql="update `subject` set SubjectName=?,ClassHour=?, GradeId=? where SubjectId=?";
	int num=0;
	try {
		num=queryRunner.update(sql,subject.getSubjectname(),subject.getClasshour(),subject.getGradeid(),subject.getSubjectid());
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return num;
}

@Override
public Subject queryByID(int id) {
	queryRunner=C3P0Util.getQueryRunner();
	String sql="select  * from  `subject`  where SubjectId=?";
	   Subject subject=null;
	   try {
	subject=	queryRunner.query(sql, new BeanHandler<Subject>(Subject.class),id);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return subject;
}

@Override
public int subjectCount() {
	queryRunner=C3P0Util.getQueryRunner();
	String sql="select COUNT(*)  from  `subject`";
	Long count=0l;
	
	try {
		//查询数量 new ScalarHandler(1) 返回的是Long类型
	count=	(Long) queryRunner.query(sql, new ScalarHandler(1));
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return count.intValue();
}

}

业务逻辑层接口
/**

  • 业务逻辑层接口
  • @author Administrator

*/
public interface SubjectService {
List queryAll();
int addSubject(Subject subject);

int deleteSubjectByID(int id);
int updateSubject(Subject subject);
//根据id查询
Subject  queryByID(int id);
//查询科目数量
int subjectCount();

}

业务逻辑层实现类
/**

  • 业务逻辑实现类
  • @author Administrator

*/
public class SubjectServiceImpl implements SubjectService {

private   SubjectDao  subjectdao=new SubjectDaoMySqlImpl();
@Override
public List<Subject> queryAll() {
	//返回的是全部的科目信息包含测试数据(后台开发人员维护看的)
	List<Subject> subjects=subjectdao.querySubjects();
	return subjects;
}
@Override
public int addSubject(Subject subject) {
	int num=subjectdao.addSubject(subject);
	return num;
}
@Override
public int deleteSubjectByID(int id) {
	// TODO Auto-generated method stub
	return  subjectdao.deleteSubjectByID(id);
}
@Override
public int updateSubject(Subject subject) {
	// TODO Auto-generated method stub
	return  subjectdao.updateSubject(subject);
}
@Override
public Subject queryByID(int id) {
	// TODO Auto-generated method stub
	return subjectdao.queryByID(id);
}
@Override
public int subjectCount() {
	// TODO Auto-generated method stub
	return subjectdao.subjectCount();
}

}

测试类
public class Test {
public static void main(String[] args) {

	// addSUbject();
	// deleteSUbject();
	// update();
	// queryByID();
	queryCount();

}

static SubjectService subjectService = new SubjectServiceImpl();

public static void queryCount() {
	int count = subjectService.subjectCount();
	System.out.println("科目数量" + count);
}

public static void queryByID() {
	Subject subject = subjectService.queryByID(9);
	System.out.println(subject);
}

public static void deleteSUbject() {
	subjectService.deleteSubjectByID(15);
}

public static void update() {
	Subject subject = new Subject();
	subject.setSubjectid(16);
	subject.setClasshour(44);
	subject.setGradeid(1);
	subject.setSubjectname("干掉系统");
	subjectService.updateSubject(subject);
}

public static void addSUbject() {
	Subject subject = new Subject();
	subject.setClasshour(44);
	subject.setGradeid(1);
	subject.setSubjectname("测试");
	// 调用业务逻辑
	int num = subjectService.addSubject(subject);
}

public static void queryall() {
	System.out.println("所有的科目信息为:");

	List<Subject> subjects = subjectService.queryAll();
	for (Subject subject : subjects) {
		System.out.println(subject);
	}
}

}

猜你喜欢

转载自blog.csdn.net/weixin_44691723/article/details/89460847