Java使用JDBC连接mySQL数据库小例子
来源:互联网 发布:java图片合成字阴影 编辑:程序博客网 时间:2024/05/17 03:19
Java连接mySQL数据库时,需要使用到一个Jar包:"mysql-connector-java-5.0.5-bin.jar",此为连接数据库的驱动包,将其导入所在工程的lib目录下,并Build Path,即可进行引用。
注意:如果你没有添加jar程序驱动包的话编译的时候发现以下问题:
Sorry,can`t find the Driver!
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
atjava.net.URLClassLoader$1.run(Unknown Source)
atjava.net.URLClassLoader$1.run(Unknown Source)
atjava.security.AccessController.doPrivileged(Native Method)
atjava.net.URLClassLoader.findClass(Unknown Source)
atjava.lang.ClassLoader.loadClass(Unknown Source)
atsun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
atjava.lang.ClassLoader.loadClass(Unknown Source)
atjava.lang.Class.forName0(Native Method)
atjava.lang.Class.forName(Unknown Source)
这里可供下载驱动包:http://dev.mysql.com/downloads/connector/j/,导入Jar后,接下来进行操作。
1、新建一个名为BDHelper的工具类:为外界提供数据库连接对象。
package util;import java.sql.Connection;import java.sql.DriverManager;public class DBHelper {//mysql数据库驱动,固定写法。连接Oracle时又与之不同,为:"oracle.jdbc.driver.OracleDriver"private static final String driver = "com.mysql.jdbc.Driver"; /*** 如下是连接数据库的URL地址,* 其中,"jdbc:mysql://" 为固定写法* "localhost"是连接本机数据库时的写法,当不是连接本机数据库时,要写数据库所在计算机的IP地址。如:172.26.132.253* "shopping"是数据库的名称,一定要根据自己的数据库更改。* "?useUnicode=true&characterEncoding=UTF-8" 指定编码格式,无需时可省略,* 即地址直接为:"jdbc:mysql://localhost:3306/shopping"*/private static final String url="jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8"; private static final String username="root";//数据库的用户名private static final String password="123456";//数据库的密码:这个是自己安装数据库的时候设置的,每个人不同。 private static Connection conn=null; //声明数据库连接对象//静态代码块负责加载驱动static {try{Class.forName(driver);}catch(Exception ex){ex.printStackTrace();}}//单例模式返回数据库连接对象,供外部调用public static Connection getConnection() throws Exception{if(conn==null){conn = DriverManager.getConnection(url, username, password); //连接数据库return conn;}return conn;}//写main方法测试是否连接成功,可将本类运行为Java程序先进行测试,再做后续的数据库操作。public static void main(String[] args) {try{ Connection conn = DBHelper.getConnection(); if(conn!=null) { System.out.println("数据库连接正常!"); } else { System.out.println("数据库连接异常!"); }}catch(Exception ex){ex.printStackTrace();}}}
2、在已有的数据库中,建立数据库表tb_user,这里使用的是Navicat数据库管理工具进行建表操作。
3、建立与tb_user表对应的实体类:
package service;/** * 对应数据库在中的tb_user表 */public class User {private int id;private String name;private String pwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}
4、调用DBHelper工具类进行数据库操作:
package service;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import util.DBHelper;public class dao{// 数据库连接对象,注意:是导入“java.sql.Connection”此包下的连接对象。private static Connection conn = null; // PreparedStatement对象用来执行SQL语句private static PreparedStatement pst = null; //结果集private static ResultSet rs = null;//保存查询到的实体集合List list = null;/** * 查询数据库,获取一个User类型的list集合 */public List getUsers(){list = new ArrayList<User>();try {conn=DBHelper.getConnection(); //从DBHelper获取连接对象// 创建statement 执行数据库语句,第一不预处理,第二步才是正式。执行的语句可以修改.// 不过为了防止SQl注入。骗取登录,所以最好创建它的子类PreparedStatement pst = conn.prepareStatement("SELECT * FROM users");// 预处理rs = pst.executeQuery();// 这里才是执行,获得数据。 // 遍历处理结果集,用while 方法next方法,相当于指针依次下移,获得每一行表的数据 while (rs.next()) {User user=new User(); /** * 两种get, * 一种是根据下标 从1开始每一列, * rs.getInt(1); * rs.getString(2); * rs.getString(3); * 第二个是根据列名查找。根据表的列数据类型使用不同的个体方法 *///为user属性赋值user.setId(rs.getInt(1));user.setName(rs.getString(2));user.setPwd(rs.getString(3)); //将user对象添加到list集合中list.add(user); }} catch (Exception e) {e.printStackTrace();}finally {// 关闭资源.一定要关闭资源。数据库的每一个连接都占据服务器资源。// 我们写代码的时候感觉不到, // 但是一旦服务器运行个三五天,连接就会不断地增加,最终导致资源不足,// 服务器将自动关机来强行关闭连接。 // 而且这里面,不仅这里,全部过程都不要抛出异常,而是要捕捉处理异常,不然也会导致资源浪费。//即使前面抛出异常,程序中断,也会执行关闭资源,而不影响浪费。try {// 这里最好要先判断是否为空,不为空了,才去关闭。 // 而且要从小到大的关闭,顺序不能乱 if (rs != null) rs.close(); if (pst != null) pst.close(); /*if (conn != null) conn.close(); */ //注意:如果后续还要使用connection,则不用关闭} catch (SQLException e) { e.printStackTrace(); }}return list;}}
http://www.imooc.com/article/12421?block_id=tuijian_wz
5、获得此数据集合后,根据需要进行相应的操作。
- Java使用JDBC连接mySQL数据库小例子
- Java使用JDBC连接mySQL数据库小例子
- JDBC连接MySQL数据库小例子
- jdbc连接mysql数据库小例子(代码)
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- java使用JDBC连接MYSQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- JAVA使用JDBC连接MySQL数据库
- java使用JDBC连接mysql数据库
- java使用JDBC连接MYSQL数据库
- 关于Ubutun下的jsonc的安装
- ibatis中配置后,项目启动报错: The content of elements must consist of well-formed character data or mark
- 【HTML5】无需Flash实现图片裁剪——中级进阶
- NPOI入门(一)创建Workbook和Sheet
- 16年6月查询四六级的成绩页面问题
- Java使用JDBC连接mySQL数据库小例子
- 【UI模块】Fragment之二(周期和通信)
- 【caffe-Windows】以mnist为例lmdb格式数据
- 简单 粗暴 恶心的 bug 总结 ( 持续更新)
- java访问oracle数据库
- runtime在应用国际化上的实践
- 详细的Log4j使用教程
- Permission denied, please try again.
- 附件上传大小限制-拦截器方法