1 封装

新建类 DBConnUtil  ,新建database.properties 文件储存链接信息如下所示

jdbcDriver=com.mysql.jdbc.Driver
jdbcUrl=jdbc\:mysql\://localhost\:3306/homework
jdbcUser=root
jdbcPasswd=123
public class DBConnUtil {

    private static String jdbcDriver = "";      //定义连接信息
private static String jdbcUrl = ""; private static String jdbcUser = ""; private static String jdbcPasswd = ""; static{
InputStream is = null;
try {
is = DBConnUtil.class.getClassLoader().getResourceAsStream("database.properties"); //加载database.properties文件
Properties p = new Properties();
p.load(is);
jdbcDriver = p.getProperty("jdbcDriver"); //赋值
jdbcUrl = p.getProperty("jdbcUrl");
jdbcUser = p.getProperty("jdbcUser");
jdbcPasswd = p.getProperty("jdbcPasswd"); } catch (IOException e) {
e.printStackTrace();
} finally {
if(is != null){
try {
is.close(); // 关闭is
} catch (IOException e) {
e.printStackTrace();
}
}
}
} public static Connection getConn(){ // 建立连接方法
Connection conn = null;
try {
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPasswd);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} public static void closeAll(ResultSet rs ,Statement st,Connection conn){ //关闭连接(用于增删改)
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void closeAll(ResultSet rs ,PreparedStatement ps,Connection conn){ // 关闭连接(用于查)
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} }

2 测试增删改差

  2.1 插入数据

public boolean ChaRu1(User user){
boolean flag=true;
Connection conn=null;
Statement st=null;
String sql="insert into user (name,pwd) values('"+user.getName()+"','"+user.getPwd()+"')";
conn=DBConnUtil.getConn(); // getConn()方法是静态的,直接用类调用建立连接。
try {
st=conn.createStatement();
int i=st.executeUpdate(sql);
if(i==0){
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(null, st, conn); //关闭连接,由于插入操作不涉及ResultSet类,故其对象rs无需关闭,用null代替。
}
return flag;
}

  2.2 修改数据

    public boolean XiuGai2(User user){
boolean flag=true;
Connection conn =null;
Statement st=null;
String sql="update user set pwd='"+user.getPwd()+"' where name='"+user.getName()+"'";
conn=DBConnUtil.getConn();
try {
st=conn.createStatement();
st.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(null, st, conn);
}
return flag;
}

  2.3 删除数据

public boolean ShanChu2(int id){
boolean flag=true;
Connection conn=null;
Statement st=null;
String sql="delete from user where id="+id;
conn=DBConnUtil.getConn();
try {
st=conn.createStatement();
int i=st.executeUpdate(sql);
if(i==0){
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(null, st, conn);
} return flag;
}

  2.4删除数据

    public List<User> ChanKan2(){
List<User> list= new ArrayList<User>();
Connection conn=null;
Statement st= null;
ResultSet rs=null;
String sql="select * from user";
conn=DBConnUtil.getConn();
try {
st=conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
User user=new User();
user.setName(rs.getString("name"));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(rs, st, conn);
}
return list;
}

JDBC 2 封装的更多相关文章

  1. JDBC操作封装

    这两天学习了一下jdbc的封装,依据的是下面这篇 http://wenku.baidu.com/link?url=FaFDmQouYkKO24ApATHYmA5QzUcj-UE-7RSSZaBWPqk ...

  2. 利用jdbc简单封装一个小框架(类似DBUtils)

    利用jdbc写的一个类似DBUtils的框架 package com.jdbc.orm.dbutils; import java.io.IOException; import java.io.Inpu ...

  3. struts神马的不过是对servlet、filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet、filter,不懂jdbc,使用struts和hibernate出问题了都不知道是怎么回事。

    struts神马的不过是对servlet.filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet.filter,不懂jd ...

  4. java的jdbc简单封装

    在学了jdbc一段时间后感觉自己写一个简单的封装来试试,于是參考的一些资料就写了一下不是多好,毕竟刚学也不太久 首先写配置文件:直接在src下建立一个db.properties文件然后写上内容 < ...

  5. java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)

    1.Oracle Jdbc的封装: public class TestJdbc { // 把jdbc需要的属性,全部私有化 private static final String DRIVER = & ...

  6. Spring对Jdbc的封装——JdbcTemplate的使用

    链接:https://pan.baidu.com/s/15luDElW4oeEaP0nvEQ_40w 提取码:i2r1 JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于 ...

  7. 简单通用JDBC辅助类封装

    哎,最近很好久没在博客园写点东西了,由于工作的原因,接触公司自己研发的底层orm框架,偶然发现该框架在调用jdbc操作的时候参考的是hibernate 里面的SimpleJdbcTemplate,这里 ...

  8. Apache DbUtils - JDBC轻量级封装的工具包

    前段时间使用了Apache Common DbUtils这个工具,在此留个印,以备不时查看.大家都知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤的例如大家常用的 ...

  9. java学习之jdbc的封装

    jdbc是连接数据库必不可少的工具,但每次连接都要重新写一遍太麻烦了,也不利于代码的可读性,这里做一个工具类进行封装. package com.gh; import java.sql.Connecti ...

  10. java系列-JDBC的封装

    参考:http://blog.csdn.net/liuhenghui5201/article/details/16369773 一. 1.加载驱动-->>封装    --->> ...

随机推荐

  1. 插入算法分别从C,java,python三种语言进行书写

    真正学懂计算机的人(不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”. 作为一个初级编程人员或者说是一个 ...

  2. 《Python学习手册》(三)

    string 字符串,和列表.元组,都适用序列操作. 关于python转义字符 迭代 for x in S: print(x) [c * 2 for c in S] Comparasion: > ...

  3. discuz对PHP7不支持mysql的兼容性处理

    PHP7 废除了 ”mysql.dll” ,推荐使用 mysqli 或者 pdo_mysql,discuz对原生mysql函数做了如下处理,通过mysqli代替原mysql函数 http://blog ...

  4. Spring boot + jdbc学习笔记

    pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...

  5. BigDecimal相关整理

    bigdecimal类型四则运算: BigDecimal s = new Bigdecimal(5); BigDecimal x = new Bigdecimal(15); 依次为最基础的加减乘除: ...

  6. 用树状数组求逆序对数(poj2299)

    Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 46995   Accepted: 17168 ...

  7. Linux下针对路由功能配置iptables的方法详解

    作为公司上网的路由器需要实现的功能有nat地址转换.dhcp.dns缓存.流量控制.应用程序控制,nat地址转换通过iptables可以直 接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使 ...

  8. curator的版本兼容问题(需注意)

    Curator 存在版本兼容问题. Curator 2.x.x-兼容两个zk 3.4.x 和zk 3.5.x, Curator 3.x.x-兼容兼容zk 3.5. Versions The are c ...

  9. JavaEE之动态代理

    jdk动态代理主要使用的是java反射机制(既java.lang.reflect包) 动态代理:程序运行时,使用JDK提供工具类(Proxy),动态创建一个类,此类一般用于代理. 代理类需要实现Inv ...

  10. UVA 10900 So you want to be a 2n-aire? (概率dp)

    题意:玩家初始的金额为1:给出n,表示有n道题目:t表示说答对一道题目的概率在t到1之间均匀分布. 每次面对一道题,可以选择结束游戏,获得当前奖金:或者回答下一道问题,答对的话奖金翻倍,答错的话结束游 ...