之前学习的java一直都是很基础的知识。今天,学会了如何将java连接到数据库。使用的数据库类型为mysql。
常用的有两种方式:
一、JDBC-ODBC桥连接
二、纯java方式
JDBC-ODBC桥连接。
打开控制面板——管理工具——数据源——用户DSN
添加—— MYSQL ODBC 5.1 Driver
Data Source Name 数据源名称;
Discription 描述(选填);
Server 数据源计算机的IP;
User 数据库用户名;
Password 数据库密码;
DataBase 数据源所要连接的数据库;
这里若是这个数据库存在,点击test会显示连接成功。
此时数据源这边就配置完成。
之后,写代码开始进行测试。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args) throws SQLException{
String sql;
Connection conn;
conn = DriverManager.getConnection("jdbc:odbc:mysql","root","123");
Statement stmt = conn.createStatement();
sql = "insert into card values('223','lll','234','xiaoxiao')";
stmt.executeUpdate(sql);
}
}
现在我们可以看到程序成功执行。打开数据库,查看card表。发现id为223的记录插入了。
这是桥连接的方式。
纯java方式
纯java方式总的来说更加普遍以及适用。
在使用纯java方式之前,我们需要做一些事情。
如果,不做那些事情的话,当我们开始写代码时,就会出现如下的错误。
import java.sql.DriverManager;
import java.sql.SQLException;
public class Link {
public static void main(String[] args){
try {
Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/labbar","root","123");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
然后,会发生报错。
会抛出以下的错误。java.lang.ClassNotFounException。
这是因为找不到驱动的jar包。
我们可以在网上下载MySQL驱动的jar包。我的版本为:mysql-connector-java-5.1.7-bin.jar
然后打开java项目的属性。即右键——properties——java Buid Path——Libraries——add External JARS——找到你之前将jar包下载的文件目录。选择jar包。——点击OK。
这个时候,再次运行就不会报错了。证明成功连接到了MySQL数据库。
这个时候,我们再来写代码进行测试
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Link {
public static void main(String[] args){
Connection conn = null;
String sql;
try {
Class.forName("com.mysql.jdbc.Driver");
conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/labbar","root","123");
Statement stmt = conn.createStatement();
sql = "insert into card values('123','lll','234','xiaoxiao')";
stmt.executeUpdate(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
当我们查看card表会发现 也是又插入了一列。
这两种方式总的来说都是比较普遍的。