A. java用JDBC连接数据库的时候,如何部署驱动包
把数据库驱动提供的jar包复制:1,工程lib下;2,tomcat
下的common下的lib中;这样就ok了,刚开始我也遇到这样的问题了。哈哈
B. java jdbc如何使用
给你看个简单的例子吧:
public class DBUtil {
/**
* 获取数据库连接
*
* @return
*/
public static Connection getConn() {
Connection con = null;
//驱动
String className = "";
//url连接路径
String url = "";
//用户名
String username = "";
//密码
String password = "";
try {
className = DBUtil.getValue("/jdbc.properties", "jdbc.driverClassName");
url = DBUtil.getValue("/jdbc.properties", "jdbc.url");
username = DBUtil.getValue("/jdbc.properties", "jdbc.username");
password = DBUtil.getValue("/jdbc.properties", "jdbc.password");
} catch (IOException e1) {
e1.printStackTrace();
}
try {
Class.forName(className);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
String u = url+"?user="+username+"&password="+password+"&useUnicode=true&characterEncoding=UTF8";
try {
con = DriverManager.getConnection(u);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭连接资源
*
* @param pst
* @param conn
*/
public static void getClose(PreparedStatement pst, Connection conn) {
try {
if (pst != null) {
pst.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 获取jdbc配置文件内的属性值
* @param fileNamePath 配置文件路径
* @param key 字段名
* @return
* @throws IOException
*/
public static String getValue(String fileNamePath, String key)
throws IOException {
Properties props = new Properties();
InputStream in = null;
try {
// in = new FileInputStream(fileNamePath);
// 如果将in改为下面的方法,必须要将.Properties文件和此class类文件放在同一个包中
in = DBUtil.class.getResourceAsStream(fileNamePath);
props.load(in);
String value = props.getProperty(key);
// 有乱码时要进行重新编码
// new String(props.getProperty("name").getBytes("ISO-8859-1"),
// "GBK");
return value;
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
if (null != in)
in.close();
}
}
}
jdbc.properties:
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/XXX
jdbc.username = XXX
jdbc.password = XXX
public class CycleTask extends TimerTask{
PreparedStatement pst = null;
ResultSet rs = null;
Connection conn = null;
@Override
public void run() {
conn = DBUtil.getConn();
StringBuffer sb = new StringBuffer();
sb.append(" INSERT INTO P_SB_TEMP(SB_ID,TEMP_SB,TEMP_HJ,REMARK,DW,ADDTIME) ");
sb.append(" VALUES(?,?,?,?,?,?) ");
try{
pst = conn.prepareStatement(sb.toString());
int index = 1;
pst.setString(index++, "1");
pst.setString(index++, "2");
pst.setString(index++, "3");
pst.setString(index++, "4");
pst.setString(index++, "5");
pst.setTimestamp(index++, new Timestamp(2011, 12, 12, 12, 12, 12, 00));
pst.execute();
}catch (SQLException e1) {
e1.printStackTrace();
}
DBUtil.getClose(pst, conn);
}
}
}
你去试试的
C. Java常用包有哪些
1.Java.lang包
这个包下包含了Java语言的核心类,如String、Math、Sytem和Thread类等,使用这个包无需使用import语句导入,系统会自动导入这个包中的所有类。
2.Java.util包
这个包下包含java的大量工具类/接口和集合框架类/接口。如Arrays和List、Set等。
3.Java.net包
这个包下包含了一些Java网络编程相关的类/接口。
4.java.io包
这个包含了一些Java输入/输出编程相关的类/接口。
5.java.text包
这个包下包含一些Java格式化相关的类。
6.java.sql包
这个包下包含了java进行JDBC数据库编程的相关类/接口。
7.java.awt包
这个包下包含了抽象窗口工具集(Abstract Window Toolkits) 的相关类/接口,这些类主要用于构建图形用户界面(GUI)程序。
8.java.swing包
这个包下包含了Swing图形用户界面编程的相关类/接口,这些可用于构建平台无关的GUI程序。
D. JAVA JDBC驱动使用JDBC包 如何新建一个Connection
代码参考:
(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename","username","password");
returnconn;
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
class.forName("com.mysql.jdbc.Driver");用来注册jdbc驱动。
DriverManager.getConnection用来获得数据库连接,参数中,databasename是要连接的数据库名,username是数据库用户名,password是对应的该用户名的密码。
E. java jdbc数据库驱动包在哪个位置了
不同的数据库针对Java开发调用都提供了相应的驱动,一般命名为*.jar,所在的位置一般是lib目录中。如果是在window下开发,也没有驱动,则可以通过ODBC,然后通过JDBC-ODBC的方式与数据库通信。
F. Java里面的JDBC是什么意思啊
Java数据库连接是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。
API概述
JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现):
DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。
可以产生用以执行SQL的Statement。Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。CallableStatement:
用以调用数据库中的存储过程。SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。
G. Java用JDBC连接数据库的时候,如何部署驱动包
Java用JDBC连接数据库的时候部署驱动包方法:
1.选中项目,然后选择Build Path,选择Configure Build Path;
2.进入配置之后,点击Libraries,点击Add External JARs;
3.找到驱动包,点击打开,添加加入之后,点击OK即可。
H. JAVA JDBC驱动使用JDBC包 如何新建一个Connection
public static Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:1433/JTDS", "name", "password");
return conn;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
name password填写用户名和密码
I. 彻底搞懂JDBC的运行过程
前几天笔者发布了博客,手写mybatis彻底搞懂框架原理。为了帮助初学者更好理解mybatis框架,这次讲解一下Java的JDBC的运行过程。
JDBC的作用
JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。
JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。
JDBC的连接步骤
执行一次JDBC连接,分六个步骤进行:
1. 导入包
在程序中包含数据库编程所需的JDBC类。大多数情况下,使用 import java.sql.* 就足够了
2. 注册JDBC驱动程序
需要初始化驱动程序,这样就可以打开与数据库的通信。
3. 打开一个连接
使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个数据库的物理连接。
4. 执行一个查询
需要使用一个类型为Statement或PreparedStatement的对象(两者区别看后文),并提交一个SQL语句到数据库执行查询。
5. 从结果集中提取数据
这一步中演示如何从数据库中获取查询结果的数据。使用ResultSet.getXXX()方法来检索的数据结果
6. 清理环境资源
在使用JDBC与数据交互操作数据库中的数据后,应该明确地关闭所有的数据库资源以减少资源的浪费。本文使用了try with resources方式关闭资源,这是JDK7的语法糖,读者可自行搜索。
完整代码如下。
JDBC的最佳实践
JDBC是如何实现Java程序和JDBC驱动的松耦合?
JDBC API使用Java的反射机制来实现Java程序和JDBC驱动的松耦合。看一下上文的JDBC示例,你会发现所有操作都是通过JDBC接口完成的,而驱动只有在通过Class.forName反射机制来加载的时候才会出现。
这是Java核心库里反射机制的最佳实践之一,它使得应用程序和驱动程序之间进行了隔离,让迁移数据库的工作变得更简单。
Statement和PreparedStatement区别
预编译
创建时的区别:
执行时的区别:
由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少次,都不会再去进行编译,而Statement 不同,如果执行多次,则相应的就要编译多少次sql,所以从这点看,PreparedStatement的效率会比Statement要高一些。PreparedStatement是预编译的,所以可以有效的防止SQL注入等问题
占位符
PrepareStatement可以替换变量在SQL语句中可以包含?,可以用?替换成变量。
而Statement只能用字符串拼接。
JDBC的ResultSet
在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。
ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中用它来遍历数据集。
默认的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet,像下面这样。
当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。
可以通过ResultSet的getter方法,传入列名或者从1开始的序号来获取列数据。
ResultSet的不同类型
根据创建Statement时输入参数的不同,会对应不同类型的ResultSet。如果你看下Connection的方法,你会发现createStatement和prepareStatement方法重载了,以支持不同的ResultSet和并发类型。
ResultSet对象有三种类型。
ResultSet有两种并发类型。
J. 在java中 jdbc api定义了一组用于数据库进行通信的接口和类 他们包括在什么包中.
首先需要导入相应数据库的驱动文件,然后要注册驱动,class.forname(drivername),获取connection对象connection
conn=drivermanager.getconnection(url);然后获取preparedstatement对象preparedstatement
pst=conn.getpreparedstate(sql,username,password)其中的username和password是你访问数据库的名称和密码;如果要使用到返回集合则可以用resultset对象接收,resultset
rs=pst.executequery();不要使用到返回集合的话就直接pst.executequery();
以上的可以查jdk
1.mysql:drivername的值为:com.mysql.jdbc.driver;url的值为:jdbc:mysql://localhost:3306/hibernate其中hibernate是你的数据库名称
2.sqlserver:drivername的值为:com.microsoft.sqlserver.jdbc.sqlserverdriver;url的值为
jdbc:sqlserver://localhost:1433;databasename="
+
database,其中database是你数据库名称
3.oracle:drivername的值为:oracle.jdbc.driver.oracledriver;url的值:jdbc:oracle:thin:@127.0.0.1:1521:ora92,其中ora92是你数据库名称