jdbc

配置

下载Java连接MySQL的驱动包

放置位置随意,只要Java目录下D:Program FilesJavajdk1.7.0_80jrelibextmysql-connector-java-5.1.25-bin.jar

eclipse项目引入该包:

导入jar包的项目名,右键build path,add external Archives...,选择刚刚存放的jar包,就引入工程了

简单调用程序:

package com.XXX.test;

import java.sql.*;

public class MySQLConnection {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = null;
String user = null;
String password = null;
String sql = null;
try {
Class.forName("com.mysql.jdbc.Driver"); //加载mysq驱动
} catch (ClassNotFoundException e) {
System.out.println("驱动加载错误");
e.printStackTrace();//打印出错详细信息
}
try {
url =
"jdbc:mysql://192.168.8.88:3309/stdlaw?user=stdlaw&password=stdlaw&useUnicode=true&&characterEncoding=gb2312&autoReconnect = true";//简单写法:url = "jdbc:myqsl://localhost/test(数据库名)? user=root(用户)&password=123456(密码)";
user = "stdlaw";
password = "stdlaw";
conn = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
System.out.println("数据库链接错误");
e.printStackTrace();
}
try {
stmt = conn.createStatement();
sql = "select * from ali_suit_people";
rs = stmt.executeQuery(sql);//执行sql语句
while(rs.next()) {
System.out.print(rs.getInt("id") + " ");
System.out.print(rs.getString("name") + " ");
System.out.println(rs.getString("lawyer") + " ");
}
} catch (SQLException e) {
System.out.println("数据操作错误");
e.printStackTrace();
}
//关闭数据库
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch(Exception e) {
System.out.println("数据库关闭错误");
e.printStackTrace();
}
}
}

package com.fabao.test;

//import java.sql.*;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* 类初始化加载的时候实现驱动的注册
* 本类实现的是一个数据库的连接的操作的工具类,
* 其中提供的是数据库的连接以及数据库最后的资源释放的操作
*
*/
public class MySQLConnection {

//数据库的连接时候的url
private static String url = "jdbc:mysql://192.168.8.88:3309/stdlaw";
//数据库的用户
private static String user = "stdlaw";
//数据库用户对用的密码
private static String password = "stdlaw";

static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

/**
*
* 获取数据库连接的操作
* @return 已经和数据库进行连接的connection对象
* @throws SQLException 数据库连接获取失败的操作
*/
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url, user, password);
}


/**
* @param conn 已经和数据库进行连接的connection对象
* @param sql 需要进行执行的sql语句
* @return 预处理的对象preparedStatement
*/
public static PreparedStatement getPreparedStatement(Connection conn,String sql){
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}

/**
* 数据库连接箱资源释放的操作
* @param conn 和数据库进行连接的对象
* @param ps 预处理的preparedStatement对象
* @param rs sql执行的结果集
*/
public static void close(Connection conn, Statement ps, ResultSet rs){
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();
}
}
}

}

package com.fabao.test;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.fabao.test.MySQLConnection;

/**
* 封装之后的一个简单的测试
* 使用的是preparedStatement的对象进行的基本的操作
* 这个类的使用可以防止用户在使用的时候进行一个sql注入的操作的影响
*/
public class MyTest {

public static void main(String[] args) throws Exception {
//数据库连接的获取的操作,对用的是自己封装的包中的类进行的操作
Connection conn = MySQLConnection.getConnection();
//sql语句的一个预操作
String sql = "select id,name,lawyer from ali_suit_people";
//ps对象
PreparedStatement ps = MySQLConnection.getPreparedStatement(conn, sql);
//sql语句的完善
// ps.setInt(1, 1);
//结果集的获取
ResultSet rs = ps.executeQuery();
//遍历结果集进行基本的数据的输出
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3));
}
//资源的释放的操作
MySQLConnection.close(conn, ps, rs);
}


}

原文地址:https://www.cnblogs.com/tonjocelyn/p/5478272.html