JAVA WEB项目 使用SQLSERVER数据库,数据发生改变时,保留 *** 作痕迹

JAVA WEB项目 使用SQLSERVER数据库,数据发生改变时,保留 *** 作痕迹,第1张

一般有三种解决方案:

从业务角度去控制,每次对数据进行 *** 作的时候像楼下说的那样记录一些关键log信息

从数据角度去控制,对这个表添加触发器

配置log4j记录到文件中

//使用纯Java方式连接数据库

public static void ConnectionDBByJava()

{

Connection connection = null;

//加载JDBC驱动

try {

//将给定的JDBC驱动类加载到Java虚拟机中

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver"); //数据包也就是这个,这个数据库是2008的,你要改

//如果系统中不存在给定的类,则会引发异常,异常类型为ClassNotFoundException

} catch (ClassNotFoundException e) {

eprintStackTrace();

}

//建立连接,DriverManager是JDBC的管理层

try {

connection = DriverManagergetConnection("jdbc:sqlserver://localhost:1433;DatabaseName=MyCinema","sa","123456");

Systemoutprintln("建立连接成功!");

} catch (SQLException e) {

eprintStackTrace();

}

//关闭连接

finally

{

try {

if(null != connection)

{

//关闭连接

connectionclose();

Systemoutprintln("关闭连接成功!");

}

} catch (SQLException e) {

eprintStackTrace();

}

}

}

最好写个判断 当你需要连接demo的时候 就连接demo 当你需要连接 GZRWFP的时候就连接GZRWFP

写个变量判断一下吧

if(datebase = demo ){

l连接demo数据库

}else{

连接其他数据库

}

你连接字符串写错了,我给你一个我原来写的,我使用的是SQL2005数据库

import javasql;

public class BaseDAO {

private static final String DRIVER = "commicrosoftsqlserverjdbcSQLServerDriver";

private static final String CONNECTION = "jdbc:sqlserver://localhost:1433;databaseName=Employee";

private static final String NAME = "sa";

private static final String PWD = "sasa";

public static Connection GetConnection() {

Connection con = null;

try {

ClassforName(DRIVER);

con = DriverManagergetConnection(CONNECTION, NAME, PWD);

} catch (Exception e) {

// TODO: handle exception

eprintStackTrace();

}

return con;

}

public static void close(ResultSet rs, PreparedStatement ps, Connection con) {

try {

if (null != rs) {

rsclose();

}

if (null != ps) {

psclose();

}

if (null != con) {

conclose();

}

} catch (Exception e) {

eprintStackTrace();

}

}

}

这句是样例:

private String dbURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

private String user="alan";

private String password="1111";

1、你需要将localhost修改成数据库服务器的IP地址(如果安装在本地可以不用修改);

2、将user="alan"中alan改成数据库的实际用户名;

3、修改password。

import javasqlResultSet; //都是导入一些下面需要用到的类

String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";//jdbc连接数据库url

public sqlServer() {

try {

ClassforName(DBDriver)newInstance(); //加载SQLServer驱动程序,DBDriver是你上面的代码;

conn=DriverManagergetConnection(ConnStr,"sa","sa"); //和数据库建立连接,ConnStr里面的://WINJUE:1433;DatabaseName=library 分别是主机地址:端口号;你自己建的数据库(database)

}

catch(SQLException e) { //捕获SQL异常

Systemoutprintln(egetMessage()); //要是出现异常,捕获到后,这句代码会把异常的信息(出错的原因之类的)打印出来。

}

catch(Exception e) { //捕获异常,这个是总的,所以不能和上面的顺序颠倒,先小到大,我连ORACLE和MYSQL,这个我通常不要,只须捕获SQL异常就OL

Systemoutprintln(egetMessage());

}

}

public Connection getConn(){ //获取连接方法

return conn;

}

public void insert(String sql) {//增删改

try {

Statement stm=conncreateStatement(); 调用conn下的方法,创建Statement对象

stmexecuteUpdate(sql);//调用Statement下的方法执行SQL语句

Systemoutprintln(" *** 作成功");

}

catch(Exception e){

Systemoutprintln(egetMessage()); //如上

}

}

public ResultSet query(String sql){ //查询

try{

Statement stm=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);

rs=stmexecuteQuery(sql); //如上

}

catch(Exception e){

Systemoutprintln(egetMessage());

}

return rs;

}

public static void main(String args[]){

sqlServer conn=new sqlServer(); //创建sqlServer,就是你上面的类,以便调用里面的方法

ResultSet rs=connquery("select from Orders"); //调用query方法,执行SQL语句后,把结果保存到结果集里

//conninsert("delete from BookInfo where BookName =" +"\'悟空传\'");

//conninsert("insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')");

try{

while(rsnext()){ //循环,判断结果集里的记录,一条条往下走,是否还有下一条记录,若是返回真,继续走

Systemoutprint(rsgetString("OrderID"));

//Systemoutprint(rsgetString("U_age"));

}

rsclose() ; //关闭结果集

}

catch (Exception e){

Systemoutprintln(egetMessage());

}

}

}

注:

TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。

TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至能进行特定定位,例如移至列表中的第四个记录或从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。

TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 相同,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。

以上就是关于JAVA WEB项目 使用SQLSERVER数据库,数据发生改变时,保留 *** 作痕迹全部的内容,包括:JAVA WEB项目 使用SQLSERVER数据库,数据发生改变时,保留 *** 作痕迹、java怎么连接数据库SQL server2005、java连sqlserver数据库同一个用户下的两个数据库,连接字符串怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9696813.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存