import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Connection
import java.sql.Statement
public class MysqlDemo {
public static void main(String[] args) throws Exception {
Connection conn = null
String sql
// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库 *** 作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建javademo数据库
String url = "jdbc:mysql://localhost:3306/javademo?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8"
try {
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
Class.forName("com.mysql.jdbc.Driver")// 动态加载mysql驱动
// or:
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver()
// or:
// new com.mysql.jdbc.Driver()
System.out.println("成功加载MySQL驱动程序")
// 一个Connection代表一个数据库连接
conn = DriverManager.getConnection(url)
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement()
sql = "create table student(NO char(20),name varchar(20),primary key(NO))"
int result = stmt.executeUpdate(sql)// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
if (result != -1) {
System.out.println("创建数据表成功")
sql = "insert into student(NO,name) values('2012001','陶伟基')"
result = stmt.executeUpdate(sql)
sql = "insert into student(NO,name) values('2012002','周小俊')"
result = stmt.executeUpdate(sql)
sql = "select * from student"
ResultSet rs = stmt.executeQuery(sql)// executeQuery会返回结果的集合,否则返回空值
System.out.println("学号\t姓名")
while (rs.next()) {
System.out
.println(rs.getString(1) + "\t" + rs.getString(2))// 入如果返回的是int类型可以用getInt()
}
}
} catch (SQLException e) {
System.out.println("MySQL *** 作错误")
e.printStackTrace()
} catch (Exception e) {
e.printStackTrace()
} finally {
conn.close()
}
}
}
写个数据库连接工具类:public MySqlDataReader GetData()
{string connection = "server=localhostuser id=rootpassword=123456database=ABCpooling=true"
MySqlConnection conn = new MySqlConnection(connection) string sqlQuery = "SELECT * FROM Article"
MySqlCommand comm = new MySqlCommand(sqlQuery, conn)
conn.Open()
MySqlDataReader dr = comm.ExecuteReader()
conn.Close() return dr
}
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 数据库,注意一些数据如用户名,密码需要根据你的开发环境来配置:
MySQLDemo.java 文件代码:
package com.runoob.testimport java.sql.*
public class MySQLDemo {
// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"
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 驱动
Class.forName("com.mysql.jdbc.Driver")
// 打开链接
System.out.println("连接数据库...")
conn = DriverManager.getConnection(DB_URL,USER,PASS)
// 执行查询
System.out.println(" 实例化Statement对...")
stmt = conn.createStatement()
String sql
sql = "SELECT id, name, url FROM websites"
ResultSet rs = stmt.executeQuery(sql)
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id")
String name = rs.getString("name")
String url = rs.getString("url")
// 输出数据
System.out.print("ID: " + id)
System.out.print(", 站点名称: " + name)
System.out.print(", 站点 URL: " + url)
System.out.print("\n")
}
// 完成后关闭
rs.close()
stmt.close()
conn.close()
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace()
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace()
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close()
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close()
}catch(SQLException se){
se.printStackTrace()
}
}
System.out.println("Goodbye!")
}
}
以上实例执行输出结果如下:
我有一个微信公众号,经常会分享一些Java技术相关的干货,还有一些学习资源。如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)