`

jdbc连接数据库

 
阅读更多
java.sql.DriverManager用来装载驱动程序,获取数据库连接。
java.sql.Connection完成对某一指定数据库的联接
java.sql.Statement在一个给定的连接中作为SQL执行声明的容器,他包含了两个重要的子类型。
Java.sql.PreparedSatement 用于执行预编译的sql声明
Java.sql.CallableStatement用于执行数据库中存储过程的调用
java.sql.ResultSet对于给定声明取得结果的途径

示例代码——连接mysql:
Java代码 复制代码 收藏代码
  1. package cn.itcast.cd.jsp.domain;
  2. import java.util.Date;
  3. public class Student {
  4. private int id;
  5. private String name;
  6. private String sex;
  7. private int age;
  8. private Date birthday;
  9. public int getId() {
  10. return id;
  11. }
  12. public void setId(int id) {
  13. this.id = id;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public String getSex() {
  22. return sex;
  23. }
  24. public void setSex(String sex) {
  25. this.sex = sex;
  26. }
  27. public int getAge() {
  28. return age;
  29. }
  30. public void setAge(int age) {
  31. this.age = age;
  32. }
  33. public Date getBirthday() {
  34. return birthday;
  35. }
  36. public void setBirthday(Date birthday) {
  37. this.birthday = birthday;
  38. }
  39. @Override
  40. public String toString() {
  41. return "Student [id=" + id + ", name=" + name + ", sex=" + sex
  42. + ", age=" + age + ", birthday=" + birthday + "]";
  43. }
  44. }
  45. package cn.itcast.cd.utils;
  46. import java.sql.Connection;
  47. import java.sql.DriverManager;
  48. import java.sql.ResultSet;
  49. import java.sql.SQLException;
  50. import java.sql.Statement;
  51. /**
  52. * 操作JDBC的工具类
  53. * @author dendy
  54. * @version 1.0
  55. */
  56. public class DbUtils {
  57. private static String url = "jdbc:mysql://localhost/jdbc";
  58. private static String user = "root";
  59. private static String password = "admin";
  60. private DbUtils(){ //不允许工具类拥有实例对象
  61. }
  62. //只需要一份驱动,所以放到静态代码块中
  63. static {
  64. try {
  65. //利用Class.forName调用com.mysql.jdbc.Driver的静态代码块,得到一个Driver对象的实例,而不需要手动创建.
  66. Class.forName("com.mysql.jdbc.Driver");
  67. } catch (ClassNotFoundException e) {
  68. e.printStackTrace();
  69. }
  70. }
  71. /**
  72. * 获得数据库连接
  73. * @return 返回Jave.sql.Connection实例,发生异常返回null.
  74. */
  75. public static Connection getConnection(){
  76. try {
  77. Connection connection = DriverManager.getConnection(url, user, password);
  78. return connection;
  79. } catch (SQLException e) {
  80. e.printStackTrace();
  81. }
  82. return null;
  83. }
  84. /**
  85. * 关闭Connection、Statement、ResultSet对象.
  86. * @param connection
  87. * @param statement
  88. * @param resultSet
  89. */
  90. public static void close(Connection connection, Statement statement, ResultSet resultSet){
  91. close(connection);
  92. close(statement);
  93. close(resultSet);
  94. }
  95. /**
  96. * 关闭Connection、Statement对象.
  97. * @param connection
  98. * @param statement
  99. */
  100. public static void close(Connection connection, Statement statement){
  101. close(connection);
  102. close(statement);
  103. }
  104. /**
  105. * 关闭Connection对象
  106. * @param connection
  107. */
  108. public static void close(Connection connection){
  109. try {
  110. connection.close();
  111. } catch (SQLException e) {
  112. e.printStackTrace();
  113. }
  114. }
  115. /**
  116. * 关闭Statement对象
  117. * @param statement
  118. */
  119. public static void close(Statement statement){
  120. try {
  121. statement.close();
  122. } catch (SQLException e) {
  123. e.printStackTrace();
  124. }
  125. }
  126. /**
  127. * 关闭ResultSet对象
  128. * @param resultSet
  129. */
  130. public static void close(ResultSet resultSet){
  131. try {
  132. resultSet.close();
  133. } catch (SQLException e) {
  134. e.printStackTrace();
  135. }
  136. }
  137. }
  138. package cn.itcast.dao.Impl;
  139. import java.sql.Connection;
  140. import java.sql.Date;
  141. import java.sql.PreparedStatement;
  142. import java.sql.ResultSet;
  143. import java.sql.SQLException;
  144. import java.util.ArrayList;
  145. import java.util.List;
  146. import cn.itcast.cd.jsp.dao.IStudentDao;
  147. import cn.itcast.cd.jsp.domain.Student;
  148. import cn.itcast.cd.utils.DbUtils;
  149. public class StudentDao implements IStudentDao {
  150. @Override
  151. public void add(Student stu) {
  152. // 连接数据库
  153. Connection connection = DbUtils.getConnection();
  154. PreparedStatement preparedStatement = null;
  155. String sql = "INSERT INTO student VALUES (null,?,?,?,?)";
  156. try {
  157. preparedStatement = connection.prepareStatement(sql);
  158. preparedStatement.setString(1, stu.getName());
  159. preparedStatement.setString(2, stu.getSex());
  160. preparedStatement.setInt(3, stu.getAge());
  161. // 第二参数为java.sql.Date类型,为java.util.Date的子类,需要处理
  162. preparedStatement.setDate(4, new Date(stu.getBirthday().getTime()));
  163. preparedStatement.executeUpdate();
  164. } catch (SQLException e) {
  165. e.printStackTrace();
  166. } finally {
  167. // 关闭资源
  168. DbUtils.close(connection, preparedStatement);
  169. }
  170. }
  171. @Override
  172. public void delete(int id) {
  173. // 连接数据库
  174. Connection connection = DbUtils.getConnection();
  175. PreparedStatement preparedStatement = null;
  176. String sql = "DELETE FROM student WHERE id = " + id;
  177. try {
  178. preparedStatement = connection.prepareStatement(sql);
  179. preparedStatement.executeUpdate();
  180. } catch (SQLException e) {
  181. e.printStackTrace();
  182. } finally {
  183. // 关闭资源
  184. DbUtils.close(connection, preparedStatement);
  185. }
  186. }
  187. @Override
  188. public void update(int id, Student stu) {
  189. // 连接数据库
  190. Connection connection = DbUtils.getConnection();
  191. PreparedStatement preparedStatement = null;
  192. String sql = "UPDATE student SET name=?,sex=?,age=?,birthday=? WHERE ID="
  193. + id;
  194. try {
  195. preparedStatement = connection.prepareStatement(sql);
  196. preparedStatement.setString(1, stu.getName());
  197. preparedStatement.setString(2, stu.getSex());
  198. preparedStatement.setInt(3, stu.getAge());
  199. preparedStatement.setDate(4, new Date(stu.getBirthday().getTime()));
  200. preparedStatement.executeUpdate();
  201. } catch (SQLException e) {
  202. e.printStackTrace();
  203. } finally {
  204. // 关闭资源
  205. DbUtils.close(connection, preparedStatement);
  206. }
  207. }
  208. @Override
  209. public Student get(int id) {
  210. // 连接数据库
  211. Connection connection = DbUtils.getConnection();
  212. ResultSet resultSet = null;
  213. PreparedStatement preparedStatement = null;
  214. String sql = "SELECT * FROM student WHERE ID=" + id;
  215. try {
  216. preparedStatement = connection.prepareStatement(sql);
  217. resultSet = preparedStatement.executeQuery();
  218. if (resultSet.next()) {
  219. Student stu = new Student();
  220. stu.setName(resultSet.getString("name"));
  221. stu.setSex(resultSet.getString("sex"));
  222. stu.setAge(resultSet.getInt("age"));
  223. stu.setBirthday(resultSet.getDate("birthday"));
  224. stu.setId(resultSet.getInt("id"));
  225. return stu;
  226. }
  227. } catch (SQLException e) {
  228. e.printStackTrace();
  229. } finally {
  230. // 关闭资源
  231. DbUtils.close(connection, preparedStatement, resultSet);
  232. }
  233. return null;
  234. }
  235. @Override
  236. public List<Student> getAll() {
  237. List<Student> stuList = new ArrayList<Student>();
  238. // 连接数据库
  239. Connection connection = DbUtils.getConnection();
  240. ResultSet resultSet = null;
  241. PreparedStatement preparedStatement = null;
  242. String sql = "SELECT * FROM student";
  243. try {
  244. preparedStatement = connection.prepareStatement(sql);
  245. resultSet = preparedStatement.executeQuery();
  246. while (resultSet.next()) {
  247. Student stu = new Student();
  248. stu.setName(resultSet.getString("name"));
  249. stu.setSex(resultSet.getString("sex"));
  250. stu.setAge(resultSet.getInt("age"));
  251. stu.setBirthday(resultSet.getDate("birthday"));
  252. stu.setId(resultSet.getInt("id"));
  253. stuList.add(stu);
  254. }
  255. } catch (SQLException e) {
  256. e.printStackTrace();
  257. } finally {
  258. // 关闭资源
  259. DbUtils.close(connection, preparedStatement, resultSet);
  260. }
  261. return stuList;
  262. }
  263. @Override
  264. public List<Student> get(String name) {
  265. List<Student> stuList = new ArrayList<Student>();
  266. // 连接数据库
  267. Connection connection = DbUtils.getConnection();
  268. ResultSet resultSet = null;
  269. PreparedStatement preparedStatement = null;
  270. String sql = "SELECT * FROM student WHERE name='"+name+"'";
  271. try {
  272. preparedStatement = connection.prepareStatement(sql);
  273. resultSet = preparedStatement.executeQuery();
  274. while (resultSet.next()) {
  275. Student stu = new Student();
  276. stu.setName(resultSet.getString("name"));
  277. stu.setSex(resultSet.getString("sex"));
  278. stu.setAge(resultSet.getInt("age"));
  279. stu.setBirthday(resultSet.getDate("birthday"));
  280. stu.setId(resultSet.getInt("id"));
  281. stuList.add(stu);
  282. }
  283. } catch (SQLException e) {
  284. e.printStackTrace();
  285. } finally {
  286. // 关闭资源
  287. DbUtils.close(connection, preparedStatement, resultSet);
  288. }
  289. return stuList;
  290. }
  291. }
分享到:
评论

相关推荐

    JDBC连接数据库测试

    JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试...

    JDBC连接数据库方法文档

    JDBC 连接数据库方法文档 JDBC(Java Database Connectivity)是 Java 语言中用于连接数据库的标准 API。它提供了一种统一的方式来访问各种类型的数据库,包括关系数据库、对象数据库和文本数据库等。下面是 JDBC ...

    JDBC连接数据库步骤及代码

    ### JDBC连接数据库步骤详解 #### 一、简介 在Java开发中,经常需要与数据库进行交互,例如查询数据、更新数据等操作。为了方便开发者进行这些操作,Sun公司推出了一套标准的Java访问数据库的API——Java Database...

    jdbc连接数据库jdbc连接数据库

    "JDBC 连接数据库" JDBC(Java Database Connectivity)是一种Java API,用于连接数据库,并执行 SQL 语句以访问和操作数据库中的数据。JDBC API 由java.sql包提供,包括了 Connection、Statement、ResultSet 等...

    jdbc连接数据库步骤

    对于初学者来说,理解JDBC连接数据库的基本步骤至关重要。以下是详细解释这些步骤的知识点: 1. 加载JDBC驱动程序: 在连接数据库之前,首先需要在Java虚拟机(JVM)中加载对应的数据库驱动程序。这一步是通过使用...

    JDBC连接数据库步骤

    jdbc java 数据库 连接数据库 步骤

    java实例jdbc连接数据库大全.doc

    JDBC连接数据库的基本步骤包括: 1. 加载数据库驱动:`Class.forName(driverClassName);` 2. 创建数据库连接:`Connection conn = DriverManager.getConnection(url, username, password);` 3. 获取Statement或...

    常用的jdbc连接数据库架包jar

    "常用的jdbc连接数据库架包jar"指的是包含不同数据库驱动的Java类库,这些驱动使得Java程序能够通过JDBC API与Oracle、DB2、SQLServer和MySQL等主流数据库建立连接。下面我们将详细探讨这些数据库以及它们对应的JDBC...

    JDBC连接数据库各种数据库参数大全

    ### JDBC连接数据库各种数据库参数详解 #### 一、Oracle8/8i/9i数据库(thin模式) 在Java中通过JDBC访问Oracle数据库时,通常采用thin驱动方式。thin驱动是一种纯Java驱动,无需依赖任何非Java代码即可完成与...

    JDBC连接数据库工具类

    JDBC连接数据库工具类 JDBC 连接数据库 ORACLE SQLSERVER MYSQL ORACLE 已测 OK 欢迎大家反馈 我的微博是: http://weibo.com/namenode

    eclipse JDBC连接数据库及jsp操作数据库数据详细教程.docx

    eclipse JDBC连接数据库及jsp操作数据库数据详细教程 本教程旨在指导读者如何使用Eclipse、JDBC和JSP来连接数据库并操作数据库数据。整个教程分为三部分:安装准备工作、安装Tomcat和MyEclipse、配置JDBC连接数据库...

    Java中JDBC连接数据库详解

    Java中JDBC连接数据库详解 Java中JDBC连接数据库详解是指Java程序使用JDBC(Java Database Connectivity)来连接和操作数据库的过程。JDBC是一种Java API,用于连接和操作数据库,它提供了一套标准化的接口,允许...

    JDBC连接数据库JDBC连接数据库.ppt

    JDBC连接数据库JDBC连接数据库

    JAVA使用JDBC连接数据库的源码实例

    JAVA使用JDBC连接数据库的源文件下载(两种方式),初学者可以下载,相互学习。可直接使用的源码工具。

    第五章 JDBC连接数据库.pdf

    本章主要针对如何使用JDBC连接Oracle数据库,提供了详细步骤说明,适用于教学及实际开发中的应用。JDBC允许Java程序执行SQL语句,适用于多种关系型数据库,如Oracle、MySQL、SQL Server等。 首先,JDBC连接Oracle...

    JDBC连接数据库代码大全

    1. `DriverManager`:它是管理JDBC驱动的服务类,主要用于加载和注册驱动,以及建立到数据库的连接。`getConnection()`方法是获取数据库连接的关键。 2. `Connection`:代表一个到数据库的物理连接,提供了创建...

    JDBC连接数据库 PPT

    JDBC 连接数据库 PPT 一些基本的连接数据库 代码

Global site tag (gtag.js) - Google Analytics