本文目录一览:
java中ODBC数据库技术
知道JDBC就没有必要知道ODBC了,ODBC无非是比JDBC多了一个中间桥梁,就是数据源,JDBC是直接连接数据库,比ODBC性能高很多。
SQL语句其实都一样,就是连接数据库的方式不一样。
不同的就是java.sql.Connection对象的获得方式
JDBC:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn
=
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=数据库名称","用户名","密码");//需要微软提供的jdbc架包
ODBC:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn
=
DriverManager.getConnection("jdbc:odbc:数据源名称");
注意ODBC需要在系统的管理工具中配置和上面“数据源名称”名称相同的数据源,其他操作都一样
如何用Java通过ODBC连接MySQL
/**
* 构造方法
*
* @param dbHost
* 域名
* @param dbPort
* 端口
* @param dbName
* 名称
* @param userName
* 用户名
* @param userPwd
* 用户密码
*/
public iMysql(String dbHost, String dbPort, String dbName, String userName, String userPwd) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
try {
_connection = DriverManager.getConnection("jdbc:mysql://IP地址:端口/数据库名称", userName, userPwd);
_statement = (Statement) _connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
}
怎样JAVA通过JDBC-ODBC桥访问数据源,配置数据源
导入java.sql包
一、加载要连接数据库的驱动程序
//Jdbc-Odbc桥 和 Microsoft Access 数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// SQL Server 驱动程序:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类,则会引发异常
二、通过驱动程序管理器得到连接实例
Connection conn=null;
//1.
//1.1建立数据源
conn=DriverManager.getConnection("jdbc:odbc:MyDataSource"); //MyDataSource是数据源名称
//1-2、不建立数据源
conn=DriverManager.getConnection("jdbc:odbc:;Driver=Microsoft Access Driver (*.mdb);DBQ=C:\\VBTest.mdb");
//2.SQL Server
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=mydb","sa","");
注:DriverManager类跟踪已注册的驱动程序,通过getConnection(URL)方法, 找到一个能够连接至URL中指定的数据库驱动程序
它接收三个参数, 分别表示1 数据源的名称、类型 2 用户名(可选) 3 密码(可选)
三、基于连接对象建立处理器对象
Statement stmt=conn.createStatement();
四、准备sql命令
String sql="select * from Student";
五、执行命令返回结果集
ResultSet rs=stmt.executeQuery(sql);
六、显示结果集
while(rs.next())//只要后面有记录
{
//对当前行的所有字段遍历
for(int i=1;i=rs.getMetaData().getColumnCount();i++)
{
System.out.print(rs.getMetaData().getColumnName(i)+": ");//显示字段名
System.out.println(rs.getString(i));//显示字段当前值
}
System.out.println();
}
七、关闭资源
rs.close(); //关闭记录集
stmt.close(); //关闭处理器对象
conn.close(); //关闭连接对象
预处理器的应用:
//3.基于连接对象建立预处理器对象
PreparedStatement pstmt=conn.prepareStatement("insert into student values(?,?,?,?)");
//4.给预处理对象的参数赋值
pstmt.setString(1,"8888");
pstmt.setString(2,"nemo");
pstmt.setString(3,"accp");
pstmt.setString(4,"sanxianglu");
//5.执行预处理命令
int i=pstmt.executeUpdate();
System.out.println(i+"条记录已成功插入!");