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);
}
}
分享到:
相关推荐
包含连接数据库以及增删改查操作代码,已封装好,可直接使用,带有详细注释
OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库,例如Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, ...
php们,平时需要开发一些简单需要连接数据库且与静态页面分离的简单程序
封装好的数据库操作模板类,采用Spring+Hibernate组合开发
4 逻辑设计 3 5 物理设计 4 5.1 表汇总 4 5.2 表[X]:[XXX表] 4 5.3 视图的设计 6 5.4 存储过程、函数及触发器的设计 6 6 安全性设计 6 6.1 防止用户直接操作数据库的方法 6 6.2 用户帐号密码的加密方法 7 6.3 角色...
3.1 操作系统数据库相关要求补丁 3.2 硬盘可用空间 3.3 CPU 利用率 4. 数据库配置 4.1 数据库版本和单独补丁 4.2 CRS版本和单独补丁 4.3 ORACLE CLUSTER配置 4.4 数据库产品选项 4.5 初始化参数文件 4.6 CRS...
耗时长之作图书馆管理系统应该能够提供所有借阅者的详细信息,以及馆内库存的详细情况,对借书和还书两大功能进行合理的操作并登记。图书馆里系统的主要任务是建立详尽的借阅信息,以及馆内的书种及对应书刊的记录,...
自然资源确权登记数据库标准及数据库模板,自然资源确权登记操作指南(试行),数据库构建脚本。
数据库角色和权限的配置 确定每个角色对数据库表的操作权限。 用户帐号口令的加密 加密算法 性能以及维护设计 需要考虑业务主表增长频度(比如每年或每天增长的数据量),通常并发访问数据库量,以及设计中需要考虑...
7. 比一些流行的数据库在大部分普通数据库操作要快 8. 简单, 轻松的API 9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定 10. 良好注释的源代码, 并且有着90%以上的测试覆盖率 11. 独立: 没有额外依赖 12. ...
用Java对数据库进行链接,进行对数据库的增删改查操作,调用数据库中的存储过程和函数
Linq数据库操作模板类 c# 2008.doc
增删改查数据库的基本操作,里面包括了数据库修改数据的模板代码,只要连接上对应的数据库就可以进行相应的操作。
该资源仅用于本人新浪博客笔记的学习用
3. 学会在企业管理器中对数据库表进行插入、修改和删除数据操作。 4. 学会使用T-SQL语句对数据库表进行插入、修改和删除数据操作。 5. 理解数据更新操作时应注意数据完整性约束。 6. 了解数据库备份、恢复及导入、...
数据库分离与附加操作流程模板.docx
网站全套模板,包含前端界面,后台管理界面,涵盖了网站所有的基本操作功能。前端使用SYSUI框架,前后分离技术,层次分明,上手快,支持扩展开发,适合学生,需要行网站开发的人使用。该模板全部为用户自定义模板...
程序实现了使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,数据库建议选用学生课程数据库,可以选择进行创建、插入、查询、删除和更新等操作,其中查询操作可以按学号、姓名、专业...
(1)熟练掌握JDBC操作数据库的整个过程; (2)利用预处理语句操作数据库; (3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,...
巡检时间 巡检人 概况 系统调整记录 调整时间 操作人 概况 系统巡检依据 文件名称 描述 数据库环境信息 根据*****数据库环境信息来进行这次巡检 IT工具 如PL/SQL数据连接工具,各系统管理软件 数据库巡检报告全文共...