根据所需要的不同数据库驱动分,分为四种:
1:1类驱动。这就是JDBC-ODBC桥的方式。但这种方式不适合程序的重用与维护,不推荐使用。需要数据库的ODBC驱动。
2:2类驱动。这就是JDBC+厂商API的形式。厂商API一般使用C编写,所以,这种方式也不长使用。
3:3类驱动。这就是JDBC+厂商Database Connection Server+DataBase的形式。
这种方法就是在JAVA 与 DATABASE之间价起了一台专门用与数据库连接的服务器(一般由数据库厂商提供)。他的好处在于能优化连接。
4:4类驱动。这就是纯JDBC+DATABASE的连接方式。也是推荐的连接方式。这使得APPLICATION与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。在这其中有两种连接的方式:
硬编码方式,就是在程序中硬性编入数据库连接的所须参数。
JNDI DataSource方式。就是在程序运行的外布环境中又称(Context)设置一个datasource数据源,有一个jndi 名称,程序只须查找此名称就可得到一个数据库连接的对象。
java向数据库中插入数据,可以使用mysql数据库,使用statement类来 *** 作数据库,示例如下:
Connection conn = null;Statement st = null;
try {
ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");//加载驱动类
conn = DriverManagergetConnection("jdbc:microsoft:sqlserver://<server_name>:<1433>", "name","pwd");
connsetAutoCommit(false);
st = conncreateStatement();
// 模拟一个 str[i] = ndgetNodeValue()trim()
String[] str = new String[] { "aaa", "bbb", "ccc", "ddd", "eee","fff" };
String sqlStr = null;
for (int i = 0; i < strlength; i++) {
sqlStr = "INSERT INTO <TABLENAME> (<COLNAME>)VALUES('" + str[i] + "')";//向数据库中插入数据
stexecuteUpdate(sqlStr);
}
conncommit();
} catch (Exception e) {
eprintStackTrace();
} finally {//释放数据库的资源
try {
if (st != null)
stclose();
if(conn != null && !connisClosed()){
connclose();
}
} catch (SQLException e) {
eprintStackTrace();
}
}
java项目用的最普遍的数据库就是mysql和oralce,大多数公司的项目都有用这两者之一,或者两个都用。
Oracle是商业数据库,提供更好的数据服务,主要用于大型的数据库应用。Oracle自身有强大的实力所以他为客户开发了很多数据挖掘检索备份恢复的强大工具,而能用到他的服务的都是拥有海量数据要处理的。比如中国移动的业务数据,每天能产生好几亿的数据,都是用oracle的数据库来存储的。
mysql是开源的产品,免费,所有源码可以根据自身需求修改(只要你有那个能力),主要用于各种中小型的数据应用。如果项目需要数据库服务但是又没有达到海量数据的规模,建议用mysql,因为它是免费得。
总的来说,从性能上来说,oralce数据库优于mysql。
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("数据库数据成功获取!!");
}
}
}
在上面while代码段后面添加以下代码段:
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);
}
PreparedStatement psql;
ResultSet res;
//预处理添加数据,其中有两个参数--“?”
psql = conprepareStatement("insert into student values(,)");
psqlsetInt(1, 8); //设置参数1,创建id为5的数据
psqlsetString(2, "xiaogang"); //设置参数2,name 为小明
psqlexecuteUpdate(); //执行更新
//预处理更新(修改)数据
psql = conprepareStatement("update student set stuname = where stuid = ");
psqlsetString(1,"xiaowang"); //设置参数1,将name改为王五
psqlsetInt(2,10); //设置参数2,将id为2的数据做修改
psqlexecuteUpdate();
//预处理删除数据
psql = conprepareStatement("delete from student where stuid = ");
psqlsetInt(1, 5);
psqlexecuteUpdate();
//查询修改数据后student表中的数据
psql = conprepareStatement("selectfrom student");
res = psqlexecuteQuery(); //执行预处理sql语句
Systemoutprintln("执行增加、修改、删除后的数据");
while(resnext()){
name = resgetString("stuname");
id = resgetString("stuid");
name = new String(namegetBytes("ISO-8859-1"),"gb2312");
Systemoutprintln(id + "\t" + name);
}
resclose();
psqlclose();
说简单不复杂是蒙人,老兄刚开始学吧。
1先弄顺java环境
2在弄顺java连接数据库,找网上的连接
3弄清下载的java项目是什么方式连接数据库,直连,中间件什么的
4弄清数据库是分布式,集中式,cs、bs,本地、异地
5在弄吧
6找个人现场帮你,这个不是一句话可以解决的问题
DLFramejava这个类的第90行错了
空指针异常,也就是改行上有一个对象为null,结果调用了该对象的方法,你看看这行代码吧,把这行代码中涉及的对象都判断一下哪个为null,就可以找到错误原因了
以上就是关于java中连接数据库的方式,有JDBC还有什么全部的内容,包括:java中连接数据库的方式,有JDBC还有什么、java 向数据库插入数据、java请问一般都用什么数据库连接啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)