java中的数据库连接问题
来源:互联网 发布:ajax获取数据库数据 编辑:程序博客网 时间:2024/05/17 02:06
2009-06-30
Q:第一:关于try...catch...finally,我的理解如下:try中放置的是要执行的代码,如果发生了异常代码就跳转到catch,最后finally中不管是什么情况都要执行的代码;所以我们一般把关闭文件以及关闭数据库连接的代码都放到finally中执行。
我现在的疑问是:因为finally是可选的,没有使用finally的话,那么关闭数据库的链接的这个操作要放在哪里呢?
第二:因为在finally块中,再次可以嵌入try....catch....的,那么关闭数据库的操作conn.close()是要放在try块的吗?try {
result.close();
Query.close();
conn.close();
} catch (SQLException e) {
是不是要写成这样呢?
A:如果没有finally,在你每次操作结束后直接判断一下conn等是否为空,然后colse掉就行了。也就是你说的try里面,try内的代码如果出现异常会发送到catch中
A:不用finally的话,就写在try里面就可以了,你在用完一个链接的时候给关掉就可以了,没必要一定要写finally。
2:java怎样连接数据库
A://就是用jdbc-odbc桥做吧,前提是你已经配好数据源
/**
* 主要完成数据库的连接并返回该连接
*/
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
public class GetDBConnection
{
/**
* 返回到数据库的一个连接
*/
public static Connection getConnection()
{
Connection con = null;
String url = "jdbc:odbc:数据库名字";
String userName ="sxp";
String password ="sxp";
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
try
{
Class.forName(driver);
con = DriverManager.getConnection(url, userName, password);
}
catch(SQLException e)
{
e.printStackTrace();
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace();
}
return con;
}
/**
* 销毁数据库的连接,释放系统资源
*/
public static void destroyConnection(Connection con, Statement stmt)
{
try
{
stmt.close();
con.close();
}
catch(SQLException e)
{
System.out.println("数据库没有正常关闭!!!");
e.printStackTrace();
}
}
}
Q:
数据库用JDBC 。 我想作个用户名密码登陆的界面。
用户名是1 密码也是1 然后能登陆的到想登陆的界面、
主要是怎么判断用户名和密码 那块。 请指教下。 最好
带个例子!
<form name="LoginForm" action="/**.do(/servletName)" method="post">
UserName: <input name="UserName" value="" type="text"/>
PassWord: <input name="PassWord" value="" type="password"/>
<input value="submit" type="submit"/>
<input value="reset" type="reset"/>
</form>
--------------------------------------------------------------------------------
Answer :
Connection Class:
import java.sql.*;
import java.util.*;
public class DBUtil {
public static Connection CONN;
static {
Class.forName("***This is DB New***");
CONN = DriverManager.getConnection("***This is DB type URL***","***UserName(DB)***","***PassWord(DB)***");
}
//Get a Connection
public static Connction getConnection() throws SQLException {
return this.CONN;
}
//Close a Connection
public static void closeConnection() throws SQLException {
this.CONN.close();
}
}
Check Class:
import java.Util.*;
import java.sql.*;
public class CheckLogin {
public static String SELECT_SQL = "";
public boolean checkLogin(String UserName,String PassWord) {
Boolean boolean = false;
try {
Connection con = DBUtil.getConnection();
this.SELECT_SQL = "select * from TableName where username = ? and password = ?";
PreparedStatenent psmt = con.prepareStatement(this.SELECT_SQL);
psmt.setString(1,UserName);
psmt.setString(2,PassWord);
ResultSet rs = psmt.execute();
while(rs.next()) {
boolean = true;
}
}catch(Exception ex) {
//Exception title
}finally {
return boolean;
}
}
}
Action execute() / Servlet (doGet() or doPost()) Method:
import java.sql.*;
import java.util.*;
public ActionForward/void execute() {
//get values of JSP
String UserName = request.getParemeter("UserName");
String PassWord = request.getParemeter("PassWord");
//check
CheckLogin check = new CheckLogin();
Boolean boolean = check.checkLogin(UserName,PassWord);
if(boolean) {
//success
}else {
//error
}
}
1、验证输入的数据是否符合要求(用户名不空、密码不空等此类的)
2、连接数据库
3、按用户名查询密码,然后与界面输入的密码比对是否一致。(这个地方如果要是涉及到密码加密就麻烦点)
4、返回密码比对结果
- java中的数据库连接问题
- JAVA 数据库连接编码问题
- JAVA 数据库连接编码问题
- java数据库连接问题
- Java中数据库连接问题
- 关于asp中的数据库连接问题
- SSM框架中的数据库连接问题
- Java中的数据库连接池原理
- Java中的BoneCP数据库连接池
- Java中的BoneCP数据库连接池
- Java中的BoneCP数据库连接池
- Java中的BoneCP数据库连接池
- Java中的BoneCP数据库连接池
- Java中的BoneCP数据库连接池
- 在java web中的数据库连接
- 关于java数据库连接的问题
- java 数据库连接池配置问题
- Java程序数据库连接失败问题
- 用debug实现系统冷启动与热启动程序
- 中国电信3G客户端 无法升级的解决办法
- NETSTAT工具state的解释
- 2009开源中国开源世界峰会在京举行
- qtopia-core-4.3.3 qmouselinuxtp_qws.cpp文件注释
- java中的数据库连接问题
- 图文:Intel亚太研发总经理梁兆柱演讲
- ASP.NET无刷新二级联动下拉列表
- javascript中使用jsp变量
- 图文:Intel开源技术中心北京研发总监杨继国
- 虚拟技术
- 我们应该学习什么语言,java、C#还是c++?
- 白乔原创:在公司里,你会是什么样的程序员?
- 模拟流量计