jdbc-odbc数据源配置(以SQLServer为例)
①找到“数据源”
方式1:控制面板-->管理工具-->数据源(ODBC)
方式2:在“运行”中,输入:odbcad32回车
②新建一个“数据源”
步骤1:在“用户DSN”或“系统DSN”下,选择“添加”。(如果是选择“用户DSN”,则该数据源为当前登录的用户私有;如果是“系统DSN”,则为所有用户共有)
步骤2:在弹出的对话框中,选择“SQL Server”,点击“完成”
步骤3:接下来,这里的“名称”任意;服务器要填写,你当前使用的服务器名,打开SQL Server,里面有(如图1b),我这里是:WWW-4677BA992FD\sqlexpress
图1a 步骤3图1b 步骤3
步骤4:如果你有sa用户,那么需要在这里添上你的密码
图2 步骤4
步骤5:接下去,就选择你的默认数据库名(如果你配置正确的话,这里会有你自建的数据库可选)
步骤6:下一步,下一步,直到完成,OK
下面有2个实例代码:第1个是Statement下的,第2个是PreparedStatement下的
操作说明:
①数据源名:mytest
②sa密码:sasa
③数据库名:Company
④表名:employee
PreparedStatement能将SQL语句进行预编译然后传给SQLServer数据库,减少SQLServer数据库的负担,而且还能防止“注入漏洞”。
所以,在实际开发中,我们一般使用PreparedStatement方式和SQLServer数据库互联。
jdbc-odbc下,Statement方式实例代码:
/**
* @Title: use_statement.java
* @Package jdbc_odbc
* @Description: 在jdbc-odbc连接方式下,用statement方式执行一条查询语句
* @author 慢跑学Android
* @date 2012-1-26 下午07:49:05
* @version V1.0
*/
package jdbc_odbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class use_statement {
public static void main(String[] args) {
Connection ct = null;
Statement st = null;
ResultSet rs = null;
try {
// 1.加载数据库驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 2.取得java程序与SQLServer数据库的连接
// 此时需要指定要连接哪个数据源(如下面的mytest),如果该数据库不需要sa权限,只需这样写:
// ct = DriverManager.getConnection("jdbc:odbc:mytest");
ct = DriverManager.getConnection("jdbc:odbc:mytest", "sa", "sasa");
System.out.println("数据库成功连接");
// 3.用statement对象执行一条查询语句
st = ct.createStatement();
// 指定要操作的数据库
st.execute("use Company");
rs = st.executeQuery("select 员工Id,姓名 from employee");
System.out.println("员工Id\t" + "姓名");
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
System.out.println(id + "\t" + name);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 4.释放资源
try {
if (null != rs) {
rs.close();
}
if (null != st) {
st.close();
}
if (null != ct) {
ct.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
运行结果:
jdbc-odbc下,PreparedStatement方式实例代码:
/**
* @Title: use_preparedStatement.java
* @Package jdbc_odbc
* @Description: 在jdbc_odbc连接方式下,用preparedStatement方式执行一条查询语句
* @author 慢跑学Android
* @date 2012-1-26 下午08:22:53
* @version V1.0
*/
package jdbc_odbc;
import java.sql.*;
public class use_preparedStatement {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
/**
* Get the connection to SQL Server.
*/
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection("jdbc:odbc:mytest","sa","sasa");
/**
* Use preparedStatement object to execute SQL statement.
*/
preparedStatement = connection.prepareStatement("use Company");
preparedStatement.execute();
preparedStatement = connection.prepareStatement("select 员工Id,姓名,部门编号 from employee where 员工Id=?");
preparedStatement.setInt(1,1008);
resultSet = preparedStatement.executeQuery();
System.out.println("\n员工Id\t" + "姓名\t" + "部门编号\n");
while (resultSet.next()) {
System.out.println(
resultSet.getInt("员工Id") + "\t"
+ resultSet.getString("姓名") + "\t"
+ resultSet.getInt("部门编号")
);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
/**
* Release the resource.
*/
try {
if (null != resultSet) {
resultSet.close();
}
if (null != preparedStatement) {
preparedStatement.close();
}
if (null != connection) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
运行结果:
分享到:
相关推荐
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbPath; cn = DriverManager.getConnection(dbUrl); pstmt = cn.prepareStatement("select PCity from shouji where ?=PhoneNo"); ...
sqlserver各版本驱动 DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回...PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)
Statement和PreparedStatement之间的区别
1、JDBC(Java Database Connection):java连接数据库统一接口API,底层主要通过直接的JDBC驱动和 JDBC-ODBC桥驱动实现与数据库的连接。 1>.JDBC驱动程序类型: <1>.JDBC-ODBC桥加ODBC驱动程序:需要ODBC驱动,适合...
4.7.5 包含连接池的数据源配置 4.7.6 池连接对象对于语句的重新利用 4.7.7 关闭池连接语句 4.7.8 连接池使用实例 4.8 分布式事务处理 4.8.1 XADataSource接口和XAConnection接口 4.8.2 事务管理器 4.8.3 关闭...
jdk1.8可使用的jdbc驱动... DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用...PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)
JDBC(powernode CD2206)详尽版 (教学视频、源代码、SQL文件) 包含:教学视频、源代码(与博客同步)、SQL文件 一、介绍 二、JDBC常用的接口和类 2.1 Driver接口 2.2 DriverManager类 2.3 Connection接口 2.4 ...
Java-JDBC【之】JDBC概述、获取连接、SQL注入问题与解决、查询...3.SQL注入问题与解决(Statement 、PreparedStatement) 3.1.模拟SQL注入 3.2.PreparedStatement解决 3.3.Statement 与 PreparedStatement 4.完整源码
java中PreparedStatement和Statement的区别
此实例意在解决预处理命令PreparedStatement的setString()方法,在sql2008数据库中写入数据时,会自动补足空格的问题, 同时此实例也解决了当存在自动补足空格的问题时,使用nvarchar可以使查找出来的数据与原输入...
jdbc中preparedStatement比Statement的好处
NULL 博文链接:https://huiminchen.iteye.com/blog/1097332
JDBC JDBC(Java Database Connectivity)可以...SqlServer sqljdbc-x.jar API: 1.DriverManager 管理驱动 要先加载数据库驱动: 装载MySql驱动:Class.forName(“com.mysql.jdbc.Driver”); 装载Oracle驱动:Class.for
主要介绍了详解Java的JDBC中Statement与PreparedStatement对象,PreparedStatement一般来说比使用Statement效率更高,需要的朋友可以参考下
使用JDBC-ODBC实现数据库连接(class,connect..,statement,preparedstatement区别,resultset,元数据访问,) 使用JDBC实现数据库的访问(流程。。) JDBC对数据库的事务操作(acid,commit,rollback)
如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务,我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。 6、在成批处理重复的插入或更新操作中使用...
用Oracle JDeveloper 10g IDE基于JDBC API的Web开发的简单测试.[InsertData]文件夹完成数据插入功能;[queryMetaData]纪录集元数据;[updateTable]完成可被更新和滚动的纪录集;[bindQuery]实现PreparedStatement...
Java面试题34.jdbc中preparedStatement比Statement的好处.mp4
jdbc经典实例(使用了database.properties封装Connection,以及Statement与PreparedStatement对比)
jdbc2.0版 PreparedStatement接口的用法