JDBC--01

jdbc(mysql)配置文件
文件名:database.properties
以下为配置文件里所写的信息:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/6521?useUnicode=true&characterEncoding=utf8
user=root
password=root
?useUnicode=true&characterEncoding=utf8此为设置编码。注意mysql设置为utf-8时写的是utf8。
  1 JDBC加载工具类方式一:
  2 package com.it.JDBC;
  3 import java.sql.Connection;
  4 import java.sql.DriverManager;
  5 import java.sql.PreparedStatement;
  6 import java.sql.ResultSet;
  7 import java.sql.SQLException;
  8 import java.util.ResourceBundle;
  9
 10 public class JDBCUtils_V1 {
 11     private static String driver = null;
 12     private static String url = null;
 13     private static String user = null;
 14     private static String password = null;
 15
 16     /**
 17      * @author Payphone
 18      * @time 2017-10-01 加载配置信息
 19      * */
 20     static {
 21         ResourceBundle bundle = ResourceBundle.getBundle("database");
 22         driver = bundle.getString("driver");
 23         url = bundle.getString("url");
 24         user = bundle.getString("user");
 25         password = bundle.getString("password");
 26     }
 27
 28     /**
 29      * @time 2017-10-01
 30      * @author Payphone连接数据库
 31      * */
 32     public static Connection getConnection() {
 33         Connection conn = null;
 34         try {
 35             // 1 加载驱动
 36             Class.forName(driver);
 37             // 2获得连接
 38             conn = DriverManager.getConnection(url, user, password);
 39             if (conn != null) {
 40                 System.out.println("连接成功");
 41             } else {
 42                 System.out.println("失败了");
 43             }
 44         } catch (Exception e) {
 45             e.printStackTrace();
 46         }
 47         return conn;
 48     }
 49
 50     /**
 51      * @author Payphone释放资源
 52      * @time 2017-10-01
 53      * */
 54     public static void Release(Connection conn, PreparedStatement psmt,
 55             ResultSet rs) {
 56         try {
 57             if (rs != null) {
 58                 conn.close();
 59             }
 60             if (psmt != null) {
 61                 psmt.close();
 62             }
 63             if (conn != null) {
 64                 conn.close();
 65             }
 66             System.out.println("释放资源成功");
 67         } catch (SQLException e) {
 68             e.printStackTrace();
 69         }
 70
 71     }
 72 }
 73
 74 JDBC加载工具类方式二:
 75  package com.it.JDBC;
 76 import java.io.IOException;
 77 import java.io.InputStream;
 78 import java.sql.Connection;
 79 import java.sql.DriverManager;
 80 import java.sql.PreparedStatement;
 81 import java.sql.ResultSet;
 82 import java.sql.SQLException;
 83 import java.util.Properties;
 84 import org.junit.Test;
 85
 86 public class JDBCUtils_V2 {
 87     private static String driver = null;
 88     private static String url = null;
 89     private static String user = null;
 90     private static String password = null;
 91
 92     /**
 93      * @author Payphone
 94      * @time 2017-10-01 加载配置信息
 95      * */
 96     static {
 97         try {
 98             // 1.通过当前类获取类加载器
 99             ClassLoader classLoader = JDBCUtils_V2.class.getClassLoader();
100             // 2.通过类加载器的方法获得一个输入流
101             InputStream is = classLoader
102                     .getResourceAsStream("database.properties");
103             // 3.创建一个properties对象
104             Properties props = new Properties();
105             // 4.加载输入流
106             props.load(is);
107             // 5.获取相关参数的值
108             driver = props.getProperty("driver");
109             url = props.getProperty("url");
110             user = props.getProperty("user");
111             password = props.getProperty("password");
112         } catch (IOException e) {
113             // TODO Auto-generated catch block
114             e.printStackTrace();
115         }
116
117
118     }
119
120     /**
121      * @time 2017-10-01
122      * @author Payphone连接数据库
123      * */
124     @Test
125     public static Connection getConnection() {
126         Connection conn = null;
127         try {
128             // 1 加载驱动
129             Class.forName(driver);
130             // 2获得连接
131             conn = DriverManager.getConnection(url, user, password);
132             if (conn != null) {
133                 System.out.println("连接成功");
134             } else {
135                 System.out.println("失败了");
136             }
137         } catch (Exception e) {
138             e.printStackTrace();
139         }
140         return conn;
141     }
142
143     /**
144      * @author Payphone释放资源
145      * @time 2017-10-01
146      * */
147     public static void Release(Connection conn, PreparedStatement psmt,
148             ResultSet rs) {
149         try {
150             if (rs != null) {
151                 conn.close();
152             }
153             if (psmt != null) {
154                 psmt.close();
155             }
156             if (conn != null) {
157                 conn.close();
158             }
159             System.out.println("释放资源成功");
160         } catch (SQLException e) {
161             e.printStackTrace();
162         }
163
164     }
165 }
166
167 JDCB测试类(测试用的junit):
168 package com.it.JDBC;
169 import java.sql.Connection;
170 import java.sql.PreparedStatement;
171 import java.sql.ResultSet;
172 import java.sql.SQLException;
173 import org.junit.Test;
174
175 /**
176  * @author Payphone
177  * @version 1.0
178  * @描述 数据库操作工具类,主要进行增删改查
179  */
180 public class JDBCUtilsTest {
181     Connection conn = null;
182     PreparedStatement psmt = null;
183     ResultSet rs = null;
184     String sql = null;
185
186     /**
187      * @author Payphone
188      * @version 1.0
189      * @描述 根据id查找用户信息
190      */
191     @Test
192     public void findById() {
193         try {
194             // 1 获取连接
195             conn = JDBCUtils_V2.getConnection();
196             sql = "select * from t_user where id=?";
197             psmt = conn.prepareStatement(sql);
198             psmt.setInt(1, 2015008);
199             rs = psmt.executeQuery();
200             while (rs.next()) {
201                 System.out.println(rs.getString("id") + ":"
202                         + rs.getString("pwd"));
203             }
204         } catch (SQLException e) {
205             // TODO Auto-generated catch block
206             e.printStackTrace();
207         } finally {
208             JDBCUtils_V2.Release(conn, psmt, rs);
209         }
210     }
211
212     /**
213      * 插入用户信息
214      */
215     @Test
216     public void insertMessage() {
217         try {
218             conn = JDBCUtils_V1.getConnection();
219             sql = "insert into t_user(id,pwd) values(?,?)";
220             PreparedStatement psmt = conn.prepareStatement(sql);
221             psmt.setInt(1, 2015002);
222             psmt.setString(2, "2015002");
223             int rs = psmt.executeUpdate();
224             if (rs > 0) {
225                 System.out.println("插入成功!");
226             }
227         } catch (SQLException e) {
228             System.out.println("插入失败,数据重复了!");
229             e.printStackTrace();
230         } finally {
231             JDBCUtils_V1.Release(conn, psmt, null);
232         }
233     }
234
235     /**
236      * 更新用户的信息
237      * */
238     @Test
239     public void updateMessage() {
240         try {
241             conn = JDBCUtils_V1.getConnection();
242             sql = "update t_user set pwd=? where id=?";
243             psmt = conn.prepareStatement(sql);
244             psmt.setString(1, "LH");
245             psmt.setInt(2, 2015002);
246             int r = psmt.executeUpdate();
247             if (r > 0) {
248                 System.out.println("密码修改成功" + ":");
249             }
250         } catch (SQLException e) {
251             System.out.println("密码修改失败!");
252             e.printStackTrace();
253         } finally {
254             JDBCUtils_V1.Release(conn, psmt, null);
255         }
256     }
257
258     /**
259      * 根据用户id删除信息
260      * */
261     @Test
262     public void deleteById() {
263         try {
264             conn = JDBCUtils_V1.getConnection();
265             sql = "delete from t_user where id=?";
266             psmt = conn.prepareStatement(sql);
267             psmt.setInt(1, 2015002);
268             int r = psmt.executeUpdate();
269             if(r>0){
270                 System.out.println("删除成功");
271             }
272         } catch (SQLException e) {
273             System.out.println("删除失败");
274             e.printStackTrace();
275         } finally {
276             JDBCUtils_V1.Release(conn, psmt, null);
277         }
278     }
279 }

第二篇JDBC的将推送JDBC连接池的。

时间: 2024-10-10 22:09:21

JDBC--01的相关文章

JDBC—01—JDBC简介;JDBC常用接口与类;

一. JDBC 简介 1 什么是 JDBC JDBC(Java DataBase Connectivity)java 数据库连接 是 JavaEE 平台下的技术规范 定义了在 Java 语言中连接数据,执行 SQL 语句的标准(标准即是接口:) 可以为多种关系数据库提供统一访问 2 什么是数据库驱动程序 数据库厂商对 JDBC 规范的具体实现,是接口的实现类: 不同数据产品的数据库驱动名字有差异 在程序中需要依赖数据库驱动来完成对数据库的操作 3 程序操作数据库流程 定义了在 Java 语言中连

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli

百度回家看沙发沙发是减肥了卡斯加积分卡拉是减肥

http://www.ebay.com/cln/hpryu-caw8ke/cars/158056866019/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445650015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445674015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/1584456790

巢哑偕倥乇椭煞谙暗逞帕俸

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求

我国第三代移动通信研究开发进展-尤肖虎200106

众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容.此次课程以<星际争霸II>回放文件分析为例,集中在IBM Cloud相关数据分析服务的应用.面对星际游戏爱好者希望提升技能的要求,我们使用IBM Data Science Experience中的jJupyter Notebooks来实现数据的可视化以及对数据进行深度分析,并最终存储到IBM Cloudant中.这是个介绍+动手实践的教程,参会者不仅将和讲师一起在线

pl/sql学习1——标量变量psahnh6S

为类型.不能用于表列的数据类型.范围为的子类型.自然数.为的子类型.具有约束为单精度浮点数.为变量赋值时.后面要加为双精度浮点数.为变量赋值时.后面要加.为数字总位数.为小数位数是的子类型.最大精度位是的子类型.最大精度位单精度浮点型是的子类型.最大精度位双精度浮点型定义精度为位的实数..定义为位的整数.变长字符串.最长测试变量数据!.定长字符串.最长测试变长二进制字符串物理存储的为类型...固定长度.个字节使用定义数据类型那个最小值:最大值:最小值:最大值:最小值:最大值:最小值:最大值:最小

Java 使用 JDBC 连接数据库的代码整合[MySql、SqlServer、Oracle]-[经过设计模式改造](2020年寒假小目标01)

2020.01.08 博客期:121 星期三 今天对过去整个大二和大三用到的数据库的方法进行汇总,可以有效的使用.套用,每一个部分都有<软件设计模式>知识,上述代码满足了开闭原则,如果要使用此代码,只需添加数据类继承已经写好的类就可以了,无需修改. 开发项目中,项目整体结构:    [小编网不好,图传不上去,到时候,补上] 类图: [小编网不好,图传不上去,到时候,补上] 源码: com.dblink.basic.sqlkind 包: 1 package com.dblink.basic.sq

01.JDBC入门

一.JDBC入门 1.JDBC简介 JDBC, 即Java Database Connectivity,JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序.即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库,比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架.接口包含在java.sql及j

01.Eclipse tomcat数据源配置Unable to find [jdbc]

一.问题情境 通常情况下如果eclipse中配置tomcat时,本地tomcat本地目录中的context.xml没有配置数据源时, eclipse中配置tomcat已经配置完成,在其中运行web项目时,会报如下错误 Unable to find [jdbc]. 警告: Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.UnsatisfiedDependenc

Java连接数据库 #01# JDBC单线程适用

官方教程(包括 javase的基础部分):JDBC Basics 重新梳理.学习一下“Java连接数据库”相关的内容. 因为最开始没有认真学多线程和JDBC,一直在自己写的多线程程序中维持下面的错误写法: 多个线程共用一个connection connection只开不关 为什么上述做法是错误的呢? 可以参看这个帖子.- - “JDBC规范并未规定那三个对象必须是线程安全的,因此所有的JDBC厂商也不会去弄成线程安全的,正因为如此,所以就会有并发问题.” .-- “ 并不是说不能把连接对象弄成成