package com.member.struts.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTemplate implements JdbcSource{
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JTTZJGL";
String username="sa";
String password="";
private Connection conn;
private Statement st=null;
private ResultSet rs=null;
private PreparedStatement ps=null;
public JdbcTemplate()
{
}
// static {
// try {
// Class.forName(JdbcSource.driver).newInstance();
// } catch (Exception e) {
// e.printStackTrace();
// System.out.println("加载驱动出错!");
// }
// }
private void createConnection(){
try {
Class.forName(JdbcSource.Mysql_driver).newInstance();
conn=DriverManager.getConnection(JdbcSource.Mysql_url);
conn.setAutoCommit(false);
} catch (Exception e) {
e.printStackTrace();
System.out.println("连接失败!"+e.getMessage());
}
}
private void getStatement(){
this.createConnection();
try {
st=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("得到状态通道失败!");
}
}
private void getPreparedStatement(String sql){
this.createConnection();
try {
ps=conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
System.out.println("得到预通道失败!");
}
}
// 状态通道下的数据查询
public ResultSet exeQuery(String sql){
this.getStatement();
try {
rs=st.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
System.out.println("查询出错!");
}
return rs;
}
//状态通道下的批处理操作
public boolean exeBatch(String[] params){
this.getStatement();
boolean isCorrect=false;
try{
if(params!=null && params.length>0){
for(int i=0;i<params.length;i++){
st.addBatch(params[i]);
}
st.executeBatch();
this.runCommit();
isCorrect=true;
}
}catch(Exception e){
e.printStackTrace();
System.out.println("状态通道下批处理操作失败!");
this.runRollback();
}
this.close();
return isCorrect;
}
// 预通道下的数据操作
public boolean exeUpdate(String sql,String[] params){
boolean isCorrect=false;
this.getPreparedStatement(sql);
try{
if(params != null && params.length>0){
for(int i=0;i<params.length;i++){
ps.setString(i+1, params[i]);
}
}
ps.executeUpdate();
this.runCommit();
isCorrect=true;
}catch(SQLException e){
e.printStackTrace();
this.runRollback();
System.out.println("预通道下的数据操作出错!");
}
this.close();
return isCorrect;
}
//得到主键
public int getPK(String tablename,String pk){
String sql="select max("+pk+") from "+tablename;
rs=this.exeQuery(sql);
try {
if(rs.next()){
return rs.getInt(1)+1;
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("得到主键出错!"+e.getMessage());
}
return 1;
}
//事务提交
public void runCommit(){
try {
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("事物提交失败!");
}
}
//事务回滚
public void runRollback(){
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("事物回滚失败!");
}
}
//关闭资源
public void close()
{
try {
if(rs!=null)rs.close();
if(st!=null)st.close();
if(conn!=null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
public ResultSet getRs() {
return rs;
}
public void setRs(ResultSet rs) {
this.rs = rs;
}
public Statement getSt() {
return st;
}
public void setSt(Statement st) {
this.st = st;
}
public PreparedStatement getPs() {
return ps;
}
public void setPs(PreparedStatement ps) {
this.ps = ps;
}
public static void main(String [] args){
JdbcTemplate jdbc=new JdbcTemplate();
//jdbc.exeQuery("select * from hyb");
/*String sql1="insert into hyb(hyid,name,password,birthday) values(6,'张三','1234',null)";
String sql2="insert into hyjlb(jlid,integral,hyid) values(3,100,6)";
String [] sqls={sql1,sql2};
jdbc.exeBatch(sqls);
*/
//String sql="insert into hyb(hyid,name,birthday)values(?,?,?)";
String sql="update hyb set name=?,password=?,address=?,birthday=?,phone=?,email=?,qq=?,demo=? where hyid=?";
//jdbc.exeUpdate(sql, new String[]{"10","呵呵","1986-05-18"});
String [] params={"aaa","aaa","西安市","1987-02-19","13958457896","xx@163.com","14779358","暂无","1"};
sql="insert into hyb(hyid,dlmc,birthday)values(10,'test1',null) ";
System.out.println(sql);
jdbc.exeUpdate(sql, new String[]{});
//jdbc.exeUpdate(sql, params);
}
}
分享到:
相关推荐
在这个名为"JAVA操作数据库模板代码"的压缩包中,我们有两个关键文件:`ConnToDB.java`和`DBConf.properties`。这两个文件共同构成了一个简单的JDBC数据库操作模板。 首先,`DBConf.properties`文件是配置文件,...
通过这些模板,用户不仅可以立即应用到实际工作或生活中,还可以学习到Access的基本操作和数据库设计原理,提高数据管理和分析能力。同时,对Access的深入理解,如SQL语言、窗体设计、报表生成、宏和VBA编程,都能在...
在使用Access数据库模板时,用户可以根据自身需求进行调整和扩展,比如添加新的字段、修改表间关系或者定制查询和报表。Access提供了用户友好的界面和强大的宏、VBA编程功能,使得非程序员也能进行复杂的数据库操作...
数据库模板在IT行业中扮演着重要的角色,特别是在数据管理和应用程序开发中。它们提供了一种标准化的方法,使得数据库设计者和开发者可以快速地构建和部署结构化的数据存储系统。下面将详细介绍数据库模板及其应用。...
OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库,例如Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, ...
本资源"简单三层模板_代码生成_C#_数据库模板_"提供了一个基于C#语言的数据库模板,适用于快速开发和代码生成,使得开发者可以更高效地处理数据库操作。 1. **表现层(Presentation Layer)**: 表现层是用户与...
5. 当完成数据库操作后,别忘了关闭连接: ```php $mysqli->close(); ``` 接下来,我们讨论静态页面的处理。静态页面通常是HTML,但可以通过PHP包含动态内容。这可以通过在HTML文件中插入PHP标签实现,比如`...
### PHP连接MySQL数据库模板知识点详解 #### 一、概述 在Web开发中,PHP与MySQL数据库的结合是非常常见的。为了方便快速地实现PHP程序与MySQL数据库之间的连接与数据交互,通常会编写一段模板代码,方便在不同的...
【Oracle数据库巡检模板】 Oracle数据库的健康检查与评估是维护数据库高效稳定运行的重要环节。巡检过程旨在发现潜在的问题,预防故障发生,并确保数据库系统的性能和可用性。以下是巡检的一些关键点: 1. **检查...
创建数据库模板后,我们可能需要创建表和要素类,这可以通过`arcpy.CreateTable_management`和`arcpy.CreateFeatureClass_management`完成。同时,对于属性字段,可以使用`arcpy.AddField_management`来添加字段,...
总结来说,"jsp连Sql_server数据库模板"是一个帮助开发者快速实现JSP与SQL Server数据库连接的工具,它可能包含了JDBC驱动、连接配置、数据库操作的模板代码,以及必要的异常处理机制。掌握这些知识点对于开发基于...
封装好的数据库操作模板类,采用Spring+Hibernate组合开发
数据库操作实验过程及心得体会模板数据库操作实验过程及心得体会模板数据库操作实验过程及心得体会模板数据库操作实验过程及心得体会模板数据库操作实验过程及心得体会模板数据库操作实验过程及心得体会模板数据库...
本数据库文档模板涵盖了从基础信息到具体对象的全面描述,旨在帮助项目经理、数据库管理员和开发人员更好地理解和使用数据库。 文档介绍部分,包括文档的目的与范围,明确了文档的意图是为了详细描述数据库的设计和...
MFC数据库基类模板是开发者常用的一种工具,它帮助程序员快速地创建数据库相关的类,以实现对数据库的增、删、改、查等基本操作,从而避免重复编写大量繁琐的代码。 MFC数据库支持的主要库有两个:ODBC(Open ...
4. 运行环境规定:包括设备、操作系统、网络环境、数据库管理系统等。 数据库设计说明书是软件开发过程中的另一个重要文档,用于描述数据库的设计和实现细节。它的编制是为了使数据库设计者和软件开发者双方对...
在"连接数据库模板"的实践中,你还可以学习使用PreparedStatement来防止SQL注入,或者探索更高级的JDBC框架,如MyBatis或Hibernate,它们提供了更强大、更便捷的数据库操作方式。无论选择哪种方式,理解JDBC基础都是...
数据库操作实验课程设计过程及心得体会模板数据库操作实验课程设计过程及心得体会模板数据库操作实验课程设计过程及心得体会模板数据库操作实验课程设计过程及心得体会模板数据库操作实验课程设计过程及心得体会模板...
在本篇博客笔记中,我们将探讨如何利用Java进行数据库连接,并将模板方法模式应用于数据库操作,以实现更高效和可维护的代码。 首先,要进行数据库连接,我们需要引入JDBC驱动。对于不同类型的数据库(如MySQL、...
- **存储过程和触发器**:描述自定义的数据库操作,如业务逻辑或复杂的更新规则。 - **安全性规划**:详细说明用户角色、权限分配和访问控制策略。 总的来说,CMMI数据库设计说明书模板是一个全面指导数据库设计的...