java怎么用连接mysql数据库
1
Java要连接数据库,那么首先你必须安装mysql数据库,mysql在windows7下面是怎么安装的呢?这里暂时不做详细解析,后面的章节中会解释的
2
当你安装好mysql之后,那么你现在应该安装JDK了(JDK16就可以),
3
安装好JDK之后,就是安装Eclipse了,要支持JDK版本,Eclipse安装的时候会自动去找JDK安装位置的,如果你是解压版的Eclipse,就要配置eclipseini文件了,将对应的JDK配置好,这些已经准备就绪的时候,就到mysql中创建数据库和表
4
先创建数据库:
CREATE DATABASE SCUTCS;
接着,创建表:
CREATE TABLE STUDENT
(
SNO CHAR(7) NOT NULL,
SNAME VARCHAR(8) NOT NULL,
SEX CHAR(2) NOT NULL,
BDATE DATE NOT NULL,
HEIGHT DEC(5,2) DEFAULT 00000,
PRIMARY KEY(SNO)
);
然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, );
5
下面,我们来编写java文件来演示一下如何访问MySQL数据库。
import javasql;
public class JDBCTest {
public static void main(String[] args){
// 驱动程序名 String driver = "commysqljdbcDriver";
// URL指向要访问的数据库名scutcs String url = "jdbc:mysql://127001:3306/scutcs";
// MySQL配置时的用户名 String user = "root"; // MySQL配置时的密码 String password = "root";
try { // 加载驱动程序 ClassforName(driver);
// 连续数据库 Connection conn = DriverManagergetConnection(url, user, password);
if(!connisClosed()) Systemoutprintln("Succeeded connecting to the Database!");
// statement用来执行SQL语句 Statement statement = conncreateStatement();
// 要执行的SQL语句 String sql = "select from student";
// 结果集 ResultSet rs = statementexecuteQuery(sql);
while(rsnext()) // 选择sname这列数据 name = rsgetString("sname
// 输出结果 Systemoutprintln(rsgetString("sno") + "\t" + name); }
rsclose(); connclose();
} catch(ClassNotFoundException e) {
Systemoutprintln("Sorry,can`t find the Driver!"); eprintStackTrace();
} catch(SQLException e) {
eprintStackTrace();
} catch(Exception e) {
eprintStackTrace();
} } }
String driverName = "commicrosoftsqlserverjdbcSQLServerDriver"; //加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=test"; //连接服务器和数据库test
String userName = "sa"; //默认用户名
String userPwd = "123456"; //密码
Connection dbConn;
try {
ClassforName(driverName);
dbConn = DriverManagergetConnection(dbURL, userName, userPwd);
Systemoutprintln("Connection Successful!"); //如果连接成功 控制台输出Connection Successful!
} catch (Exception e) {
eprintStackTrace();
}
参考代码:
package 数据库编程;
import javasql;
public class 数据库连接 {
public static void main(String[] args) throws SQLException{
//1加载驱动程序
try {
ClassforName("commysqljdbcDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
//2创建与DB数据库的连接
//连接字符串
String url="jdbc:mysql://1921681101:3306/java数据库user=root&password=humin";
Connection con=DriverManagergetConnection(url);
//进行读写
if(!conisClosed()){
Systemoutprint("欢迎访问数据库!\n想做什么啊………………\n");
Statement st=concreateStatement();
ResultSet rs= stexecuteQuery("select from stu");
while(rsnext()){
Systemoutprint( rsgetString("stuid")+","+rsgetString("name")+","+rsgetString("sex")+","+rsgetString("age")+","+rsgetString("address")+","+rsgetString("tel")+"\n");
}
}
//关闭数据库
conclose();
}
}
1JDBC呗,import javasql;
传统连接方式
Connection conn = getConnection();//获得连接
//注意下边应该抛出个SQLException异常
Statement stat = conncreateStatement();
statexecuteXXX("")//执行SQL语句,查询就是Query,插入,修改这种操作就Update
ResultSet result; //查询后返回的结果集用这个保存
connclose//最后别忘了关闭连接
2当然是Hibernate了,是一种持久层技术,建立相应的实体后可以把数据库当对象操作,非常方便,具体使用我觉得应该看看书会比较好!
首先要引入 MySQL-connector-java-505-binjar 包,
package hqs;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("数据库数据成功获取!!");
}
}
}
这是老师发给我们的资料,共享给你:
Type 1: jdbc-odbc桥
Jdbc-odbc 桥 是sun公司提供的,是jdk提供的的标准api 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码( 本地数据库驱动代码是指 由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll 文 件)
jdbc-odbc桥|odbc|厂商DB代码---数据库Server
只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的
但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的因为,你不可能要求所有客户都能找到odbc driver
=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。
Type 2: 本地Api驱动
本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库
这种方法需要本地 数据库驱动代码 本地api驱动|厂商DB代码---数据库Server这种驱动比起jdbc-odbc桥执行效率大大提高了但是,它仍然需要在客户端加载数据库厂商 提供的代码库这样就不适合基于internet的应用并且,他的执行效率比起3,4型的jdbc驱动 还是不够高
Type3:网络协议驱动 这种驱动实际上是根据我们熟悉的三层结构建立的 jdbc先把对数局库的访问请求传递给网 络上的中间件服务器 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 jdbc驱动程序作为访问数据库的方法 网络协议驱动--中间件服务器---数据库Server
由于这种驱动是基于server的所以,它不需要在客户端加载数据库厂商提供的代码库而且 他在执行效率和可升级性方面是比较好的因为大部分功能实现都在server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中 但是,这种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好
Type4 纯JAVA驱动
这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求由于4型驱动写的应用可 以直接和数据库服务器通讯这种类型的驱动完全由java实现,因此实现了平台独立性 本地协议驱动---------数据库Server
由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器所 以它的执行效率是非常高的而且,它根本不需要在客户端或服务器端装载任何的软件或驱动 这种驱动程序可以动态的被下载但是对于不同的数据库需要下载不同的驱动程序
以上对四种类型的jdbc驱动做了一个说明那么它们适合那种类型的应用开发呢
Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学 者了解jdbc编程也较适用 对于那些需要大数据量操作的应用程序则应该考虑2,3,4型驱动在intranet方面的应用可以 考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发 的趋势是使用纯java所以3,4型驱动也可以作为考虑对象 至于基于internet方面的应用就只有考虑3,4型驱动了 因为3型驱动可以把多种数据库驱 动都配置在中间层服务器所以3型驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用 4型驱动则适合那些连接单一数据库的工作组应用。
现在是纯java 开发,所以一般都用type4的jdbc driver。
0条评论