Java MySQL 连接
Java 连接 MySQL 需要驱动包,百度就有自行下载,解压后得到jar库文件,然后在对应的项目中导入该库文件。
本实例使用的是 Eclipse,导入 jar 包:
创建测试数据
接下来我们在 MySQL 中创建 RUNOOB 数据库,并创建 websites 数据表,表结构如下:
CREATE TABLE `websites` (`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
`url` varchar(255) NOT NULL DEFAULT '',
`alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
`country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
数据表显示如下:
连接数据库
以下实例使用了 JDBC 连接 MySQL 数据库,注意一些数据如用户名,密码需要根据你的开发环境来配置:
MySQLDemojava 文件代码:
package comrunoobtest;import javasql;
public class MySQLDemo {
// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "commysqljdbcDriver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
ClassforName("commysqljdbcDriver");
// 打开链接
Systemoutprintln("连接数据库");
conn = DriverManagergetConnection(DB_URL,USER,PASS);
// 执行查询
Systemoutprintln(" 实例化Statement对");
stmt = conncreateStatement();
String sql;
sql = "SELECT id, name, url FROM websites";
ResultSet rs = stmtexecuteQuery(sql);
// 展开结果集数据库
while(rsnext()){
// 通过字段检索
int id = rsgetInt("id");
String name = rsgetString("name");
String url = rsgetString("url");
// 输出数据
Systemoutprint("ID: " + id);
Systemoutprint(", 站点名称: " + name);
Systemoutprint(", 站点 URL: " + url);
Systemoutprint("\n");
}
// 完成后关闭
rsclose();
stmtclose();
connclose();
}catch(SQLException se){
// 处理 JDBC 错误
seprintStackTrace();
}catch(Exception e){
// 处理 ClassforName 错误
eprintStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmtclose();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) connclose();
}catch(SQLException se){
seprintStackTrace();
}
}
Systemoutprintln("Goodbye!");
}
}
以上实例执行输出结果如下:
我有一个微信公众号,经常会分享一些Java技术相关的干货,还有一些学习资源。如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。
首先需要下载mysql数据库驱动程序,去mysql官网下载,文件名为mysql-connector-java-5111-binjar,其中5111是版本,可下载最新的。要把这个jar加到工程中。
java代码:
import javasql;
public class TestInsert {
public static void main(String[] args) {
try {
ClassforName("commysqljdbcDriver");//加载MySQL驱动程序
//建立与数据库的连接
String url = "jdbc:mysql://localhost:3306/training"; //training是数据库名,可替换
String user = "root"; //root是mysql用户名,可替换
String password = "root"; //替换为你的password
Connection cn = DriverManagergetConnection(url,user,password);
Statement stmt = cncreateStatement();//创建Statement对象
} catch (Exception e) {
eprintStackTrace();
}
}
}
/
获取数据库的连接
@return conn
/
public static Connection getConnection() throws Exception{
String url = "jdbc:mysql://101035188:3306/sgjwx";
String user = "opermain";
String psw = "opermain";
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
ClassforName("commysqljdbcDriver");
if(null == conn) {
try {
conn = DriverManagergetConnection(url, user, psw);
} catch (SQLException e) {
Systemoutprintln("获取失败");
throw new RuntimeException(e);
} finally{
closeResources(conn,pstm,rs);
}
}
return conn;
}
/
释放资源
@param conn
@param pstmt
@param rs
/
public static void closeResources(Connection conn,PreparedStatement pstmt,ResultSet rs) {
if(null != rs) {
try {
rsclose();
} catch (SQLException e) {
eprintStackTrace();
throw new RuntimeException(e);
} finally {
if(null != pstmt) {
try {
pstmtclose();
} catch (SQLException e) {
eprintStackTrace();
throw new RuntimeException(e);
} finally {
if(null != conn) {
try {
connclose();
} catch (SQLException e) {
eprintStackTrace();
throw new RuntimeException(e);
}
}
}
}
}
}
}
// //tuserrole执行插入
// try {
// String sql = "insert into sys_userrole(roleid,userid) values (,)";
// conn = getConnection();
// connsetAutoCommit(false);
// PreparedStatement pstmt = (PreparedStatement) connprepareStatement(sql,StatementRETURN_GENERATED_KEYS);//传入参数:StatementRETURN_GENERATED_KEYS
// pstmtsetInt(1, 5);
// pstmtsetInt(2, sid);
// pstmtexecuteUpdate();
// ResultSet rs = pstmtgetGeneratedKeys(); //获取结果
// int a = -1;
// if (rsnext()) {
// a = rsgetInt(1);//取得ID
// }
// Systemoutprintln(a);
// Systemoutprintln("t_userrole执行成功");
// conncommit();
// } catch (Exception e) {
// eprintStackTrace();
// Systemoutprintln("执行失败");
// }
首先创建一个连接工厂import javasqlConnection;
import javasqlDriverManager;
import javasqlResultSet;
import javasqlStatement;public class ConnectionFactory {
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
public ConnectionFactory() {
super();
// TODO Auto-generated constructor stub
} public void OpenConn() throws Exception{
try{
ClassforName("commysqljdbcDriver")newInstance();
String url="jdbc:mysql://127001:3306/guestbook";
String user="root";
String password="root";
conn=DriverManagergetConnection(url,user,password);
}catch(Exception e){
Systemoutprintln("创建链接抛出异常为:"+egetMessage());
}
} public ResultSet executeQuery(String sql) throws Exception{
try{
stmt=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);
rs=stmtexecuteQuery(sql);
}catch(Exception e){
Systemoutprintln("执行查询抛出的异常为:"+egetMessage());
}
return rs;
} public void close() throws Exception{
try{
rsclose();
stmtclose();
connclose();
}catch(Exception e){
Systemoutprintln("关闭对象抛出的异常:"+egetMessage());
}
} }
测试类 import javasqlResultSet;public class TestJDBC {
public static void main(String[] args) {
ConnectionFactory c= new ConnectionFactory();
try {
cOpenConn();
String sql="select from tb_guestbook";
ResultSet rs=cexecuteQuery(sql);
while(rsnext()){
Systemoutprintln(rsgetString(2));
}
cclose();
Systemoutprintln();
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
import javasql;
public class DataBasePractice {
public static void main(String[] args) {
//声明Connection对象
Connection con;
//驱动程序名
String driver = "commysqljdbcDriver";
//URL指向要访问的数据库名mydata
String url = "jdbc:mysql://localhost:3306/mydata";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "root";
//遍历查询结果集
try {
//加载驱动程序
ClassforName(driver);
//1getConnection()方法,连接MySQL数据库!!
con = DriverManagergetConnection(url,user,password);
if(!conisClosed())
Systemoutprintln("Succeeded connecting to the Database!");
//2创建statement类对象,用来执行SQL语句!!
Statement statement = concreateStatement();
//要执行的SQL语句
String sql = "select from student";
//3ResultSet类,用来存放获取的结果集!!
ResultSet rs = statementexecuteQuery(sql);
Systemoutprintln("-----------------");
Systemoutprintln("执行结果如下所示:");
Systemoutprintln("-----------------");
Systemoutprintln(" 学号" + "\t" + " 姓名");
Systemoutprintln("-----------------");
String name = null;
String id = null;
while(rsnext()){
//获取stuname这列数据
name = rsgetString("stuname");
//获取stuid这列数据
id = rsgetString("stuid");
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组。
name = new String(namegetBytes("ISO-8859-1"),"gb2312");
//输出结果
Systemoutprintln(id + "\t" + name);
}
rsclose();
conclose();
} catch(ClassNotFoundException e) {
//数据库驱动类异常处理
Systemoutprintln("Sorry,can`t find the Driver!");
eprintStackTrace();
} catch(SQLException e) {
//数据库连接失败异常处理
eprintStackTrace();
}catch (Exception e) {
// TODO: handle exception
eprintStackTrace();
}finally{
Systemoutprintln("数据库数据成功获取!!");
}
}
}
在上面while代码段后面添加以下代码段:
String name = null;
String id = null;
while(rsnext()){
//获取stuname这列数据
name = rsgetString("stuname");
//获取stuid这列数据
id = rsgetString("stuid");
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组。
name = new String(namegetBytes("ISO-8859-1"),"gb2312");
//输出结果
Systemoutprintln(id + "\t" + name);
}
PreparedStatement psql;
ResultSet res;
//预处理添加数据,其中有两个参数--“?”
psql = conprepareStatement("insert into student values(,)");
psqlsetInt(1, 8); //设置参数1,创建id为5的数据
psqlsetString(2, "xiaogang"); //设置参数2,name 为小明
psqlexecuteUpdate(); //执行更新
//预处理更新(修改)数据
psql = conprepareStatement("update student set stuname = where stuid = ");
psqlsetString(1,"xiaowang"); //设置参数1,将name改为王五
psqlsetInt(2,10); //设置参数2,将id为2的数据做修改
psqlexecuteUpdate();
//预处理删除数据
psql = conprepareStatement("delete from student where stuid = ");
psqlsetInt(1, 5);
psqlexecuteUpdate();
//查询修改数据后student表中的数据
psql = conprepareStatement("selectfrom student");
res = psqlexecuteQuery(); //执行预处理sql语句
Systemoutprintln("执行增加、修改、删除后的数据");
while(resnext()){
name = resgetString("stuname");
id = resgetString("stuid");
name = new String(namegetBytes("ISO-8859-1"),"gb2312");
Systemoutprintln(id + "\t" + name);
}
resclose();
psqlclose();
现在正做一个接口,通过不同的连接字符串 *** 作不同的数据库(数据库培训数据库认证)。
要用到MySQL(MySQL认证Mysql培训)数据库,以前没用过这个数据库,用aC++(C++培训)ess和sqlserver比较多。
通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。
成都IT培训>
驱动
String driver = "commysqljdbcDriver";
// URL指向要访问的数据库名mydb
String url = "jdbc:mysql://127001:3306/mydb";
// 用户名
String user = "root";
// Java连接MySQL密码
String password = "root";
try {
// 加载驱动
ClassforName(driver);
// 连续数据库
Connection conn = DriverManagergetConnection(url, user, password);
if(!connisClosed())
Systemoutprintln("connecting to the Database Succee!");
// statement用来执行SQL语句
Statement statement = conncreateStatement();
// 要执行的SQL语句
String sql = "select from student";
ResultSet rs=statement executeQuery(sql);
while(rshasNext()){
//遍历取得结果
}
以上就是关于怎样用java连接mysql全部的内容,包括:怎样用java连接mysql、java如何连接mysql、如何在Java程序中访问mysql数据库中的数据并进行简单的 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)