JDBC(Java DataBase Connectivity)是Java数据库连接API。JDBC能完成与一个数据库建立连接,然后向数据库发送SQL语句,再处理数据库返回的结果。
JDBC在设计上和ODBC相似。JDBC和数据库建立连接的一种方式是首先建立起一个JDBC-ODBC桥接器。
首先安装office2000,就有了Access2000,启动Access,建立新数据库messmdb,建立包含两个文本型字段name和sex的表,表名为member,随便录入一些字符串到member表中,保存在任意目录下,比如说C盘下。然后打开控制面板 -> 管理工具 -> 数据源 (ODBC),选择"系统DSN",也可以选择"用户DSN"选项卡,系统的DSN对每个用户都适用可避免调试时出现的权限问题,单击“添加”,
点击"完成",d出的对话框里将"数据源名"一项设为你喜欢的名字,比如redsun。点"选择",找到"C:\messmdb"文件,如此一个ODBC数据源就配置好了。
要连接该数据源,也就是连接数据库,首先要建立一个JDBC-ODBC桥接器,上面已经说过了,其方法是:
ClassforName("sunjdbcodbcJdbcOdbcDriver");
Class 是Javalang包中的一个类,通过调用它的静态方法forName就可以建立桥接器。但建立桥接器时可能发生异常,这是我们所不想见到的,因此要捕获这个异常:
try{
ClassforName("sunjdbcodbcJdbcOdbcDriver");
}
catch(ClassNotFoundException e){异常捕获}
然后就是连接数据库了,这里要用到javasql包中的Connection类声明一个对象,再用类DriverManager调用它的静态方法getConnection创建这个连接。
Connection con=DriverManagergetConnection("jdbc:odbc:数据源名字","数据源用户名","数据源密码");
为防止连接出现异常,这里也要有个异常的处理,具体看代码:
=========accessjava============
程序代码
import javasql;
public class access{
public static void main(String args[]){
Connection con;
Statement sql; //声明Statement对象
ResultSet rs;
try{
ClassforName("sunjdbcodbcJdbcOdbcDriver");
}
catch(ClassNotFoundException e){
Systemoutprintln(""+e);
}
try{
con=DriverManagergetConnection("jdbc:odbc:redsun","","");
sql=concreateStatement();
rs=sqlexecuteQuery("Select FROM member");
while(rsnext()){
String name=rsgetString(1); //获得数据库第一列
String sex=rsgetString(2);
Systemoutprintln("姓名:"+name); //输出信息
Systemoutprintln("性别:"+sex);
}
conclose();
}
catch(SQLException el){}
}
}
编绎accessjava, 然后在命令提示符中先切换到编绎后的accessclass的目录,执行:
java access 回车
以上这个例子只是简单的连接数据库,并静态游标方式显示数据,更新、删除和添加数据库以前学过sql的很容易理解,语法为:
String xx="sql语句";
Statement对象executeUpdate(xx);
其实,也就那几步而已:
别忘了,加载jar文件
加载驱动
获得Connection
获得PreparedStatement /PreparedStatement
执行sql语句
处理结果集ResultSet
关闭连接
mport javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javautilArrayList;
import javautilList;
import EntityJIAJU;
public class JiaJu {
public JIAJU selectExe(int shouhinId) {
JIAJU jia = new JIAJU();
try {
Connection con = ConnectionManagergetConnection();
String sql = "select from jiaju where shouhinId=";
PreparedStatement ps = conprepareStatement(sql);
pssetInt(1, shouhinId);
ResultSet rs = psexecuteQuery();
if (rs != null) {
while (rsnext()) {
jiasetShouhinId(rsgetInt("shouhinId"));
jiasetShouhinName(rsgetString("shouhinName"));
jiasetShouhinColor(rsgetString("shouhinColor"));
jiasetShouhinPrice(rsgetInt("shouhinPrice"));
jiasetShouhinPai(rsgetString("shouhinPai"));
jiasetShouhinShi(rsgetString("shouhinShi"));
// listadd(jia);
}
}
} catch (Exception e) {
eprintStackTrace();
}
return jia;
}
public void insertJia(JIAJU jia) {
try {
Connection con = ConnectionManagergetConnection();
String sql = "insert into jiaju values(,,,,)";
PreparedStatement ps = conprepareStatement(sql);
pssetString(1, jiagetShouhinName());
pssetString(2, jiagetShouhinColor());
pssetInt(3, jiagetShouhinPrice());
pssetString(4, jiagetShouhinPai());
pssetString(5, jiagetShouhinShi());
psexecuteUpdate();
} catch (Exception e) {
eprintStackTrace();
}
}
public List selectJia() {
List list = new ArrayList();
try {
Connection con = ConnectionManagergetConnection();
String sql = "select from jiaju ";
PreparedStatement ps = conprepareStatement(sql);
ResultSet rs = psexecuteQuery();
if (rs != null) {
while (rsnext()) {
JIAJU jia = new JIAJU();
jiasetShouhinId(rsgetInt("shouhinId"));
jiasetShouhinName(rsgetString("shouhinName"));
jiasetShouhinColor(rsgetString("shouhinColor"));
jiasetShouhinPrice(rsgetInt("shouhinPrice"));
jiasetShouhinPai(rsgetString("shouhinPai"));
jiasetShouhinShi(rsgetString("shouhinShi"));
listadd(jia);
}
}
} catch (Exception e) {
eprintStackTrace();
}
return list;
}
public JIAJU selectbuy(int shouhinId) {
JIAJU jia = new JIAJU();
try {
Connection con = ConnectionManagergetConnection();
String sql = "select from jiaju where shouhinId=";
PreparedStatement ps = conprepareStatement(sql);
pssetInt(1, shouhinId);
ResultSet rs = psexecuteQuery();
if (rs != null) {
while (rsnext()) {
jiasetShouhinId(rsgetInt("shouhinId"));
jiasetShouhinName(rsgetString("shouhinName"));
jiasetShouhinColor(rsgetString("shouhinColor"));
jiasetShouhinPrice(rsgetInt("shouhinPrice"));
jiasetShouhinPai(rsgetString("shouhinPai"));
jiasetShouhinShi(rsgetString("shouhinShi"));
}
}
} catch (Exception e) {
eprintStackTrace();
}
return jia;
}
public void updateLou(JIAJU jia){
try{
Connection con = ConnectionManagergetConnection();
String sql = "update jiaju set shouhinPrice= where shouhinId=";
PreparedStatement ps = conprepareStatement(sql);
pssetInt(1,jiagetShouhinPrice());
pssetInt(2, jiagetShouhinId());
psexecuteUpdate();
}catch(Exception e){
eprintStackTrace();
}
}
public void deleteLou(JIAJU jia){
try{
Connection con = ConnectionManagergetConnection();
String sql = "delete from jiaju where shouhinId=";
PreparedStatement ps = conprepareStatement(sql);
pssetInt(1, jiagetShouhinId());
psexecuteUpdate();
}catch(Exception e){
eprintStackTrace();
}
}
}
首先你得确定你的数据库连接是通过什么形式连接的,hibernate还是原生态的jdbc 还是spring;
如果是只有hibernate,那么你得通过加载配置文件得到sessionFactory,然后得到session
如果spring,那么同样也需要注入sessionfactory到你的dao
如果是jdbc方式,那么你就按照原生态jdbc写法
总之,在你构造DAO时,得有数据源。这样才能 *** 纵你的数据库
如果搞懂了这些问题,那么你的第一个,第三个问题就迎刃而解了。至于第二问题,我没明白你什么意思!
我的采用的是javabena+jsp
一个javabean
public ArrayList selectCourseInfo()throws Exception {//下拉框显示课程信息
ArrayList list = new ArrayList();
try {
dbopen();
ResultSet rs = dbselect("select from CourseInfo");
while (rsnext()) {
listadd(new CourseInfo(rsgetInt(1), rsgetString(2),rsgetString(3)));
}
} catch (Exception e) {
eprintStackTrace();
} finally {
dbclose();
}
return list;
}
然后在jsp中调用
<tr><td>课 程:<select name="course">
<%try{
ArrayList list=mselectCourseInfo();
if(listisEmpty()){
outprintln("没有数据显示");
}
for(int i=0;i<listsize();i++){
CourseInfo c=(CourseInfo)listget(i);%>
<option><%=cgetName()%></option>
<%}}
catch(Exception e){}
%></select>
</td></tr>
这样就可以动态的显示了
你使用的是框架吗,还是什么,要结合你的项目进行写可以参考一下,我使用的hibernate 查询,返回用户列表,下面是一个例子
/
query by subid
/
public Userinfo findBySubId(String subid) {
if (null != subid) {
List<Userinfo> uList = null;
String hql = " from Userinfo where subid=";
Session session = getSession();
Query query = sessioncreateQuery(hql);
querysetString(0, subid);
uList = querylist();
sessionclose();
return (null!=uList) uListget(0):null;
}
return null;
}
1注册驱动
Classforname("commysqljdbcDriver");//这是连接mysql数据库的驱动
2获取数据库连接
javasqlConnection conn=javasqlDriverManagergetConnection(); 3获取表达式
javasqlStatement stmt=conncreateStatement("jdbc:mysql://localhost/testuseUnicode=true&characterEncoding=GBK","root","null");//三个参数分别是数据库连接的URL,用户名,密码 4执行SQL
javasqlResultSet rs=stmtexecuteQuery("select from user"); 5显示结果集里面的数据
while(rsnext()){
Systemoutprintln(rsgetInt(1));
Systemoutprintln(rsgetString("username"));
Systemoutprintln(rsgetString("password"));
Systemoutpringln();
}//执行插入语句
//stmtexecuteUpdate("insert into user values(1,'中文','345')");
6释放资源
rsclose();
stmtclose();
connclose();
以上就是关于java如何连接数据库全部的内容,包括:java如何连接数据库、java 如何连接数据库,如何完成数据库记录添加,删除,修改以及查询。、关于java 连接数据库实现增删改查的具体功能代码。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)