(连接数据库之前首先要导入这个数据库的驱动jar包 例如mysql 为mysql-connector-java-5.1.46.jar)

关于连接数据库的数据库连接池c3p0  jar包:

c3p0-0.9.5-pre1.jar相关依赖有mchange-commons-java-0.2.4.jar    itcast-tools-1.4.jar(这个里面有一个JdbcUtils工具类用来得到连接)

配置文件:c3p0-config.xml(名字必须固定为这个放在src路径下)

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 这是默认配置信息 -->
<default-config>
<!-- 连接四大参数配置 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/customers</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123</property>
<!-- 池参数配置 -->
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</default-config> <!-- 专门为oracle提供的配置信息 -->
<named-config name="oracle-config">
<property name="jdbcUrl">jdbc:mysql://localhost:3306/lisi</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123</property>
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</named-config> </c3p0-config>

用来连接数据库;

连接数据库后就要操作数据库1:

操作数据库在javaweb阶段用的最简单的jar包是 :commons-dbutils-1.4.jar

主要使用的是QuerRunner类里面有查询的方法query与更新的方法update这是常用的

连接数据库后就要操作数据库2:commons-dbutils-1.4.jar依赖itcast-tools-1.4.jar,

  根据扩展以后升级为TxQueryRunner(在itcast-tools-1.4.jar)

注意这个TxQueryRunner是扩展的一个类需要的jar包是commons-dbutils-1.4.jar,在itcast-tools-1.4.jar缺一不可

这个里面的方法都已经帮你传入了连接是所以不需要手动去获取连接了,而且不需要关闭连接这样保证连接可以归还给连接池,而且里面处理了事务连接和事务连接的关闭,详细代码可以看TxQueryRunner源码

所以只需要传入sql模板和参数即可 展示一段代码:

//注册用户(添加用户)
public void add(User user){
try{
//sql模板
String sql ="insert into tb_user values(?,?,?,?,?,?)";
Object[] params ={user.getUid(),user.getUsername(),user.getPassword(),user.getEmail(),user.getCode(),user.isState()};
qr.update(sql, params);
}catch(SQLException e){
throw new RuntimeException(e);
}
}
//用激活码查找用户
public User findByCode(String code){
try{
//sql模板
String sql ="SELECT*FROM tb_user where code=?"; return qr.query(sql, new BeanHandler<User>(User.class),code);
}catch(SQLException e){
throw new RuntimeException(e);
}
}

在query方法里面有许多结果集处理器:例如BeanListHandler BeanHandler  (这两个可以将查询到的数据映射成为一个对象集合和对象返回)MapListHandler ScalarHandler等

首先先介绍这些以后再加

介绍一个类两个方法:

CommonUtils是根据beanutils扩展的一个工具类属于itcast-tools-1.4.jar的里面

所以这个类依赖的jar包有:commons-beanutils-1.8.3.jar,commons-logging-1.2.jar,itcast-tools-1.4.jar

CommonUtils.uuid()这个方法可以随机生成32为字符

CommonUtils.toBean(map,clazz)  这个传入一个map集合和javabean 的Class对象然后来做一次性赋值注意map集合的键要与javabean里面的属性名对应做到一次性赋值

关于一次赋值QueryRunner的query(sql,rsh,Object...param)相似这个里面的rsh就是结果集处理器用来装载数据库的值BeanListHandler BeanHandler  (这两个可以将查询到的数据映射成为一个对象集合和对象返回这个也是要注意数据库里面的字段名和JavaBean属性名要相同这样才能映射上去!!!

代码展示:

//按用户名查找用户
public User findByUsername(String username){
try{
//sql模板
String sql ="SELECT*FROM tb_user where username=?"; return qr.query(sql, new BeanHandler<User>(User.class),username);
}catch(SQLException e){
throw new RuntimeException(e);
}
}
//按email查询用户
public User findByEmail(String email){
try{
//sql模板
String sql ="SELECT*FROM tb_user where email=?"; return qr.query(sql, new BeanHandler<User>(User.class),email);
}catch(SQLException e){
throw new RuntimeException(e);
}
}

关于Javaweb的比较好用的jar包概述的更多相关文章

  1. cmd命令下执行jar包程序

     在cmd中使用指令来执行jar包 概述: 今天有一个需求,要在cmd中执行.jar文件 实践: 1.新建你的Hello world 2.导出到jar包 3.打开你的成功导出的jar包 4.打开文件夹 ...

  2. 向eclipse的JavaWeb项目中导入jar包--备忘录

    一:      在你所需的jar包网站下载对应的jar包.如org.apache.commons.lang.jar. 二:复制粘贴到该JavaWeb的WEB-INF目录下的lib目录下,如: 三:右键 ...

  3. 向eclipse的JavaWeb项目中导入jar包

    一:      在你所需的jar包网站下载对应的jar包.如org.apache.commons.lang.jar. 二:复制粘贴到该JavaWeb的WEB-INF目录下的lib目录下,如: 三:右键 ...

  4. eclipse javaWeb项目如何引入jar包

      eclipse javaWeb项目如何引入jar包 CreateTime--2018年4月19日08:54:24 Author:Marydon 1.判断当前jar包是否已经引入到项目当中的3种方式 ...

  5. 转载---解决 eclipse 中发布的java-web工程,jar包无法发布到tomcat 的lib下。

    1.首先: Server Locations修改后会变灰,如果需要更改设置,则需要移除与Tomcat服务器关联的项目,同时,鼠标右键菜单Clean清除Tomcat服务器的状态^^就可以修改了. 此时E ...

  6. springboot等javaweb项目将jar包安装(打包)到本地Maven仓库

    在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包 1.打开jar所在文件夹,假设我们要将 taobao-sdk-java-auto_1479188381469-20200121. ...

  7. Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)

    最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...

  8. Android中库项目、jar包等的使用方法

    在软件开发过程中,程序代码的复用,是非常重要的概念.我们总是需要使用一些现有的模块.包.框架,或开发自己的模块.包.框架,来实现对程序代码的复用.比如在JavaWeb编程过程中,经常使用的Struts ...

  9. 解决 eclipse buildpath的jar包不能复制到tomcat lib下的问题

    环境: Eclipse 版本 Mars. 问题描述: Eclipse 开发的JavaWeb项目,通过buildpath的引入的jar包无法发布到tomcat对应应用的Lib 下. 解决办法: 1. 手 ...

随机推荐

  1. Gerrit评审代码流程注意事项

    Gerrit管理CR流程时要注意下面两大事项: (一)格式规范 这部分主要是根据公司或者团队的要求规范来撰写格式,这里不做统一介绍了:格式规范的宗旨是让修改的代码和业务需求能够匹配.可追溯. (二)评 ...

  2. webkit 技术内幕 笔记 三

    浏览器内核及特性 在浏览器中,一个很重要的模块,是将页面转变成可视化的图像结果,这就是浏览器的内核,通常被称作渲染引擎.渲染:就是根据描述或者定义构建数学模型,通过模型生成图像的过程.浏览器的渲染引擎 ...

  3. 题解【AcWing1089】烽火传递

    题面 单调队列优化 DP 模板题. 我们考虑设 \(dp_{i}\) 表示从 \(1\) 到 \(i\) 能够准确传递情报,且第 \(i\) 个烽火台发出信号的最小费用. 转移方程不难得出:\(dp_ ...

  4. python里的复数complex

    复数是一个数学概念,包含了实部和虚部.在python设计语言中,可以直接定义以j为单位,也可以使用complex函数创建复数,这个函数可以传实部和虚部,也可以只传实部. 我们把形如z=a+bj(a,b ...

  5. unserialize():Error at offset 0 of 96 bytes是什么意思

    数据库有个列是数组序列化后存到数据库的,取出来得反序列化, php想要把数组保存到数据库里,有两种序列化方式,分别是: //php系统序列化 $b = serialize($a);    //序列化数 ...

  6. 第十周 11.28 psp0

    课堂测试总结 学生:马小心                                              日期:2017.11.28 作业号 日期 过程 估计数据 实际数据 累计数据 时间 ...

  7. 【剑指Offer】47、求1+2+3+...+n

    题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 题解:递归实现/利用Math //利用短路 ...

  8. Real-time Compressive Tracking

    这是RTC算法的文献blog Real-time Compressive Tracking Kaihua Zhang1, Lei Zhang1, Ming-Hsuan Yang2 1Dept. of ...

  9. MongoDB,使用C#实现2d地理位置检索

    这两天在研究mongoDB,从零开始接触它,为什么要研究它呢,因为它支持2d地图索引,而且速度非常快,可以用它来做类似微信的(摇一摇功能),不过网上很难搜到.net操作的,而且就算搜索到了也不能用,也 ...

  10. centos yum 安装openresty

    yum 安装openresty sudo yum install yum-utils -y sudo yum-config-manager --add-repo https://openresty.o ...