13 个解决方案
#1
我的理解
public class myjdbc{
public myjdbc(){
加载驱动,连接
}
public Resultset executeQuery(){
查询
}
public int executeUpdate(){
更新,插入,删除
}
public void close(){
关闭stmt,connection等
}
}
我还看见别人把backup、store等都加进来了,还有用到pool等,我还不太会:(
public class myjdbc{
public myjdbc(){
加载驱动,连接
}
public Resultset executeQuery(){
查询
}
public int executeUpdate(){
更新,插入,删除
}
public void close(){
关闭stmt,connection等
}
}
我还看见别人把backup、store等都加进来了,还有用到pool等,我还不太会:(
#2
其实核心就是减少客户端的负荷,力争让所有的业务逻辑都在服务器端完成。
具体如何实现,就有很多技巧可言了。
具体如何实现,就有很多技巧可言了。
#3
可以把连接放在一个类里,把数据库的增,删,改,查放在另一个类里
这样会比较好
这样会比较好
#4
哪位有这样的例子呢?能否发出来看看!
#5
可以先写一个与数据操作打交道的数据类,然后再写其它实现逻辑的类,需要返回页面的数据用vector之类的数据结构返回,总之,jsp仅仅是实现界面功能,逻辑应该全部封装到类里。
如果界面交互操作十分复杂,可以考虑用severlet实现。
如果界面交互操作十分复杂,可以考虑用severlet实现。
#6
public myjdbc(){
加载驱动,连接
}
因该改为
public myjdbc(){
去连接池中取连接;
}
加载驱动,连接
}
因该改为
public myjdbc(){
去连接池中取连接;
}
#7
给你个简单的吧,两个类 ,一个是db.java ,封装最简单的操作,
一个是adduser.java 用于完成功能
//*******************************************db.java
package com.skybay;
import java.sql.*;
import java.net.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class db{
Connection conn = null;
ResultSet rs = null;
public db() {
try {
//注册数据库驱动程序为Oracle驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e) {
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("mydb(): " + e.getMessage());
}
}
//executeQuery方法用于进行记录的查询操作
//入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql) {
rs = null;
try {
//建立数据库连接,使用Oracle的一种thin连接方式,demo为主机名字,demodb为数据库,后面的两个demo为用户名和密码
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}
//executeUpdate方法用于进行add或者update记录的操作
//入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql) {
boolean bupdate=false;
rs = null;
try {
//建立数据库连接,其它参数说明同上面的一样
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
//如果不成功,bupdate就会返回0
if(rowCount!=0)bupdate=true;
}
catch(SQLException ex) {
//打印出错信息
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}
}
//****************************************************adduser.java
package com.skybay;
import java.sql.*;
import java.lang.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db {
String name;
String password;
//构建器
/*
*************************************************************
*****添加一个新用户,若成功返回ture,否则返回false***********
*************************************************************
*/
public boolean addNewUser(){
boolean boadduser=false;
try {
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into RegInfo(name,password) values('" + name + " ','" + password + "')");
//sSql=sSql+ " values(" + "aa" + "aa" + ")";
//一种调试的方法,可以打印出sql语句,以便于查看错误
System.out.println(sSql);
//调用父类的executeUpdate方法,并根据成功以否来设置返回值
if(super.executeUpdate(sSql)) boadduser=true;
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//无论是否出错,都要返回值
return boadduser;
}
}
/*
******************************************************************
***用于判断用户名和密码时候相符,若符合返回ture,否则返回false*****
******************************************************************
*/
public boolean checkUser(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "' and password='" + password + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
/*
*****************************************************************************
***checkName()函数用于判断用户名是否已经存在,若存在,返回ture,否则返回fals*e
*****************************************************************************
*/
public boolean checkName(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
public void setName(String name) { this.name = name; }
public void setPassword(String password) { this.password= password; }
public String getName() { return name; }
public String getPassword() { return password; }
}
然后你就可以在jsp里调用这个bean了!!!
一个是adduser.java 用于完成功能
//*******************************************db.java
package com.skybay;
import java.sql.*;
import java.net.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class db{
Connection conn = null;
ResultSet rs = null;
public db() {
try {
//注册数据库驱动程序为Oracle驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e) {
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("mydb(): " + e.getMessage());
}
}
//executeQuery方法用于进行记录的查询操作
//入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql) {
rs = null;
try {
//建立数据库连接,使用Oracle的一种thin连接方式,demo为主机名字,demodb为数据库,后面的两个demo为用户名和密码
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}
//executeUpdate方法用于进行add或者update记录的操作
//入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql) {
boolean bupdate=false;
rs = null;
try {
//建立数据库连接,其它参数说明同上面的一样
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
//如果不成功,bupdate就会返回0
if(rowCount!=0)bupdate=true;
}
catch(SQLException ex) {
//打印出错信息
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}
}
//****************************************************adduser.java
package com.skybay;
import java.sql.*;
import java.lang.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db {
String name;
String password;
//构建器
/*
*************************************************************
*****添加一个新用户,若成功返回ture,否则返回false***********
*************************************************************
*/
public boolean addNewUser(){
boolean boadduser=false;
try {
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into RegInfo(name,password) values('" + name + " ','" + password + "')");
//sSql=sSql+ " values(" + "aa" + "aa" + ")";
//一种调试的方法,可以打印出sql语句,以便于查看错误
System.out.println(sSql);
//调用父类的executeUpdate方法,并根据成功以否来设置返回值
if(super.executeUpdate(sSql)) boadduser=true;
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//无论是否出错,都要返回值
return boadduser;
}
}
/*
******************************************************************
***用于判断用户名和密码时候相符,若符合返回ture,否则返回false*****
******************************************************************
*/
public boolean checkUser(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "' and password='" + password + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
/*
*****************************************************************************
***checkName()函数用于判断用户名是否已经存在,若存在,返回ture,否则返回fals*e
*****************************************************************************
*/
public boolean checkName(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
public void setName(String name) { this.name = name; }
public void setPassword(String password) { this.password= password; }
public String getName() { return name; }
public String getPassword() { return password; }
}
然后你就可以在jsp里调用这个bean了!!!
#8
怎样实现多步操作的事务控制呢?
我使用两条语句(第一条可以正确插入,第二条语句不能插入),在所有的数据库操作前,先SerAutoCommit(False),然后再执行2次数据库操作和Commit,最后再SerAutoCommit(True),但是结果却是第一条语句成功插入数据库。
整个结果好像和没有使用事务控制一个效果,为什么?
我使用两条语句(第一条可以正确插入,第二条语句不能插入),在所有的数据库操作前,先SerAutoCommit(False),然后再执行2次数据库操作和Commit,最后再SerAutoCommit(True),但是结果却是第一条语句成功插入数据库。
整个结果好像和没有使用事务控制一个效果,为什么?
#9
...
需要做一个错误判断。
无错:Commit
有错;RollBack
需要做一个错误判断。
无错:Commit
有错;RollBack
#10
up
#11
up
#12
以前我写过一个软件下载站点。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
#13
以前我写过一个软件下载站点。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
#1
我的理解
public class myjdbc{
public myjdbc(){
加载驱动,连接
}
public Resultset executeQuery(){
查询
}
public int executeUpdate(){
更新,插入,删除
}
public void close(){
关闭stmt,connection等
}
}
我还看见别人把backup、store等都加进来了,还有用到pool等,我还不太会:(
public class myjdbc{
public myjdbc(){
加载驱动,连接
}
public Resultset executeQuery(){
查询
}
public int executeUpdate(){
更新,插入,删除
}
public void close(){
关闭stmt,connection等
}
}
我还看见别人把backup、store等都加进来了,还有用到pool等,我还不太会:(
#2
其实核心就是减少客户端的负荷,力争让所有的业务逻辑都在服务器端完成。
具体如何实现,就有很多技巧可言了。
具体如何实现,就有很多技巧可言了。
#3
可以把连接放在一个类里,把数据库的增,删,改,查放在另一个类里
这样会比较好
这样会比较好
#4
哪位有这样的例子呢?能否发出来看看!
#5
可以先写一个与数据操作打交道的数据类,然后再写其它实现逻辑的类,需要返回页面的数据用vector之类的数据结构返回,总之,jsp仅仅是实现界面功能,逻辑应该全部封装到类里。
如果界面交互操作十分复杂,可以考虑用severlet实现。
如果界面交互操作十分复杂,可以考虑用severlet实现。
#6
public myjdbc(){
加载驱动,连接
}
因该改为
public myjdbc(){
去连接池中取连接;
}
加载驱动,连接
}
因该改为
public myjdbc(){
去连接池中取连接;
}
#7
给你个简单的吧,两个类 ,一个是db.java ,封装最简单的操作,
一个是adduser.java 用于完成功能
//*******************************************db.java
package com.skybay;
import java.sql.*;
import java.net.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class db{
Connection conn = null;
ResultSet rs = null;
public db() {
try {
//注册数据库驱动程序为Oracle驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e) {
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("mydb(): " + e.getMessage());
}
}
//executeQuery方法用于进行记录的查询操作
//入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql) {
rs = null;
try {
//建立数据库连接,使用Oracle的一种thin连接方式,demo为主机名字,demodb为数据库,后面的两个demo为用户名和密码
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}
//executeUpdate方法用于进行add或者update记录的操作
//入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql) {
boolean bupdate=false;
rs = null;
try {
//建立数据库连接,其它参数说明同上面的一样
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
//如果不成功,bupdate就会返回0
if(rowCount!=0)bupdate=true;
}
catch(SQLException ex) {
//打印出错信息
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}
}
//****************************************************adduser.java
package com.skybay;
import java.sql.*;
import java.lang.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db {
String name;
String password;
//构建器
/*
*************************************************************
*****添加一个新用户,若成功返回ture,否则返回false***********
*************************************************************
*/
public boolean addNewUser(){
boolean boadduser=false;
try {
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into RegInfo(name,password) values('" + name + " ','" + password + "')");
//sSql=sSql+ " values(" + "aa" + "aa" + ")";
//一种调试的方法,可以打印出sql语句,以便于查看错误
System.out.println(sSql);
//调用父类的executeUpdate方法,并根据成功以否来设置返回值
if(super.executeUpdate(sSql)) boadduser=true;
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//无论是否出错,都要返回值
return boadduser;
}
}
/*
******************************************************************
***用于判断用户名和密码时候相符,若符合返回ture,否则返回false*****
******************************************************************
*/
public boolean checkUser(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "' and password='" + password + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
/*
*****************************************************************************
***checkName()函数用于判断用户名是否已经存在,若存在,返回ture,否则返回fals*e
*****************************************************************************
*/
public boolean checkName(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
public void setName(String name) { this.name = name; }
public void setPassword(String password) { this.password= password; }
public String getName() { return name; }
public String getPassword() { return password; }
}
然后你就可以在jsp里调用这个bean了!!!
一个是adduser.java 用于完成功能
//*******************************************db.java
package com.skybay;
import java.sql.*;
import java.net.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class db{
Connection conn = null;
ResultSet rs = null;
public db() {
try {
//注册数据库驱动程序为Oracle驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e) {
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("mydb(): " + e.getMessage());
}
}
//executeQuery方法用于进行记录的查询操作
//入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql) {
rs = null;
try {
//建立数据库连接,使用Oracle的一种thin连接方式,demo为主机名字,demodb为数据库,后面的两个demo为用户名和密码
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}
//executeUpdate方法用于进行add或者update记录的操作
//入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql) {
boolean bupdate=false;
rs = null;
try {
//建立数据库连接,其它参数说明同上面的一样
conn = DriverManager.getConnection("jdbc:odbc:skybay","","");
Statement stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
//如果不成功,bupdate就会返回0
if(rowCount!=0)bupdate=true;
}
catch(SQLException ex) {
//打印出错信息
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}
}
//****************************************************adduser.java
package com.skybay;
import java.sql.*;
import java.lang.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db {
String name;
String password;
//构建器
/*
*************************************************************
*****添加一个新用户,若成功返回ture,否则返回false***********
*************************************************************
*/
public boolean addNewUser(){
boolean boadduser=false;
try {
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into RegInfo(name,password) values('" + name + " ','" + password + "')");
//sSql=sSql+ " values(" + "aa" + "aa" + ")";
//一种调试的方法,可以打印出sql语句,以便于查看错误
System.out.println(sSql);
//调用父类的executeUpdate方法,并根据成功以否来设置返回值
if(super.executeUpdate(sSql)) boadduser=true;
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//无论是否出错,都要返回值
return boadduser;
}
}
/*
******************************************************************
***用于判断用户名和密码时候相符,若符合返回ture,否则返回false*****
******************************************************************
*/
public boolean checkUser(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "' and password='" + password + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
/*
*****************************************************************************
***checkName()函数用于判断用户名是否已经存在,若存在,返回ture,否则返回fals*e
*****************************************************************************
*/
public boolean checkName(){
boolean boadduser=false;
try {
//构建sql查询语句
String sSql="select * from RegInfo where name='" + name + "'";
//String sSql="select * from RegInfo";// where name='" + name + "' and password='" + password + "'";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next()){
//查询出来的记录集为空
boadduser=true;
}else{
boadduser=false;
}
}
catch(Exception ex) {
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}finally{
//返回值
return boadduser;
}
}
public void setName(String name) { this.name = name; }
public void setPassword(String password) { this.password= password; }
public String getName() { return name; }
public String getPassword() { return password; }
}
然后你就可以在jsp里调用这个bean了!!!
#8
怎样实现多步操作的事务控制呢?
我使用两条语句(第一条可以正确插入,第二条语句不能插入),在所有的数据库操作前,先SerAutoCommit(False),然后再执行2次数据库操作和Commit,最后再SerAutoCommit(True),但是结果却是第一条语句成功插入数据库。
整个结果好像和没有使用事务控制一个效果,为什么?
我使用两条语句(第一条可以正确插入,第二条语句不能插入),在所有的数据库操作前,先SerAutoCommit(False),然后再执行2次数据库操作和Commit,最后再SerAutoCommit(True),但是结果却是第一条语句成功插入数据库。
整个结果好像和没有使用事务控制一个效果,为什么?
#9
...
需要做一个错误判断。
无错:Commit
有错;RollBack
需要做一个错误判断。
无错:Commit
有错;RollBack
#10
up
#11
up
#12
以前我写过一个软件下载站点。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
#13
以前我写过一个软件下载站点。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。
就是用javabean封装数据库连接过程。
下面是例子。数据库是mysql的。
package soft;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.sql.*;
public class mysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public String url="jdbc:mysql://localhost:3306/soft?useUnicode=true&characterEncoding=8859_1";
public mysql()
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(ClassNotFoundException e)
{System.err.println("mysql():"+e.getMessage());
try{
con=DriverManager.getConnection(url);
stmt = con.createStatement();
}catch(SQLException sqlEx)
{System.err.println(sqlEx.getMessage());}
}
public ResultSet executeQuery(String sql)
{
try{
rs = stmt.executeQuery(sql);
}catch(SQLException ex)
{
System.err.println("executeQuery():"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int i=0;
try{
i = stmt.executeUpdate(sql);
}catch(SQLException ex)
{
System.err.println("executeUpdate():"+ex.getMessage());
}
return i;
}
}
这是.java原码。