第一次写博客——记录学习的一小段收获
作为一个在大学学习了三年通信工程专业的人,但是在计算机方面却一窍不通,说出去都让人笑话,最近两个月也在很努力的学习前端和后端的知识,从JAVA到Web前端再到数据库,虽然这两个月学的不是很深,但我觉得确实收获到了很多,学会了很多,这是我第一次写博客,其实也不知道该写什么,就记录自己的学习过程把。到现在已经学习了两个月了,以前经常在博客上看别人发的文章,从别人的文章中获取一些新的知识或者找到一些好的方法,但从来没想过自己去写一篇文章,可能也是因为觉得自己能力不足,知识面也不够,所以才不会有这种想法。但现在我觉得每个阶段有空都在博客上发表自己的一些学习记录,自己的一些足迹,回头看也会有蛮多收获的把。
今天主要是学习了DBUtil的一个使用,主要的知识点有以下三点:
1、操作属性文件properties类
Properties properties=new Properties();
properties.load(new FileReader("文件所在路径"));
通过getProperty()方法来调用文件里面的值
2、数据连接池,即程序启动时、就创建若干连接对象
(1)、 DBCP
(2)、 Druid:(现在我主要用这个)
下载地址:http://repo1.maven.org/maven2/com/alibaba/druid/
相关属性说明:https://github.com/alibaba/druid/wiki
(3)、JNDI
(4)、C3PO
3、DBUtils的使用(实体类的属性要与数据库的列名一致)
(1)、导入MySql、DbUtils和Druid的jar包
(2)、 创建属性类
Properties properties=new Properties(); properties.load(new FileReader("文件所在路径"));
(3)、 固定获取连接池对象
DataSource ds =DruidDataSourceFactory.createDataSource(properties);
(4)、获取连接对象
QueryRunner query=new QueryRunner(ds);
(5)、增删查改 query有两个方法:
update(增删改): query.update("sql语句",N个参数);
query(查询) 主要用到了Handler处理器
BeanListHandler<T>(T.class):返回一个集合
BeanHandler<T>(T.class):返回表的第一行
ScalarHandler<Long>():返回一个长整型
自定义Handler实现类,返回一个集合,可用来多表联查
以下就是以student表和class表为例的一个两表联查的自定义Handler实现类,以及自己创建的student表和classes表。
//创建属性类
Properties pro=new Properties();
//加载属性文件、一定要加模块名
pro.load(new FileReader("Project/dbutil.properties"));
//获取固定的连接池对象
DataSource ds=DruidDataSourceFactory.createDataSource(pro);
//获取连接对象
QueryRunner qr=new QueryRunner(ds);
//反射和泛型,qr有两个方法query查询和update增删改
//添加数据
qr.update("insert into student(name,pwd,classid) values(?,?,?)", "李学学", "114477", 1);
//删除数据
qr.update("delete from student where id=?",9);
//修改数据
qr.update("update student set name=?,pwd=?,classid=? where id=?","李学学","222222",3,6);
//查询所有数据
List<Student> query1 = qr.query("select * from student", new BeanListHandler<Student>(Student.class));
for (Student info:query1) {
System.out.println(info);
}
![]()
//查询第一行的数据
Student query2 = qr.query("select * from student", new BeanHandler<>(Student.class));
System.out.println(query2);
![]()
//查询某个值
Long query3 = qr.query("select count(1) from student", new ScalarHandler<Long>());
System.out.println(query3);
![]()
//自定义Handler实现类
List<Student> query4 = qr.query("select s.id as \"id\",s.name as \"name\",s.pwd as \"pwd\",c.id as \"classid\",c.name as \"classname\"\n" +
"from student s,classes c where s.classid=c.id;", new StudentHandler());
for (Student info:query4) {
System.out.println(info);
}
![]()

今天的大致内容就是这些,一些内容都是我自己总结的,可能会有错误,希望大家能做出批评与指正!谢谢!




浙公网安备 33010602011771号