javaoop---jdbc 入门级别
2016-05-11 10:48
323 查看
1. 连接整个 数据库 的顺序 就是:
---- 加载 驱动类
------------创建连接对象 ----------传送 sql语句 ----------处理结果-------
反射 里面的 功能(导入一个 jar包先)
DriverManage类 有 一个 创建对象的 方法 String sql="insert into goods values('爽歪歪','瓶',2.5,100)";
class.forName( Connection sqlcon=DriverM.getCon(a,ab,bc); Statement
stm=sqlcon.createStatement();
com.mic......SqlserverDriver);
需要 提供的 是 数据库的名字 ,账号,密码 int iline = stm.executeUpdate(sql); 普通的
插入,直接执行之后 返回一个 改变行数
String url="jdbc:sqlserver://localhost:1433;
DataBaseName=XT003";
String user="sa";
String password="123456";
1.如果 你需要 执行之后的 是一个 结果集
String sql="select * from goods";//编写查询sql语句
Statement stm=sqlcon.createStatement();
//第四步:执行查询语句并返回查询的结果集
ResultSet rst = stm.executeQuery(sql);
while(rst.next()){
int id = rst.getInt("id");
String gname=rst.getString("gname");
String gunit=rst.getString("gunit");
double gprice= rst.getDouble("gprice");
int icount=rst.getInt("icount");
System.out.println("编号:"+id+";名称:"+gname+";单位:"+gunit+";单价:"+gprice+";库存:"+icount);
}
3. 如果 说 : 你想 输入 变量 到 sql 语句,就需要用到
3.1 String sql="insert into goods values(?,?,?,?)";
Connection sqlcon=DriverManager.getConnection(url, user, password);
PreparedStatement pst = sqlcon.prepareStatement(sql);
// 一个一个赋值
p st.setString(1, "爽歪歪");
pst.setString(2, "桶");
pst.setDouble(3, 2.5);
pst.setInt(4, 100);
这个 不是查询的 结果集,于是 返回一个行数 int iline = pst.executeUpdate();
如果 是返回的 结果集 ,那么 还是 一样的
pst=sql.prepSta(sql语句);
Result rst= pst.executeQuery();
while(rst.next()){
你就直接写 数据库中 哪一行的 名字就行
rst.getObject("myName");
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
但是 在实际中 ,由于 经常的使用到 这几个方法,所以 我们会打包 号, 直接调用代码如下
public class DBManager {
这一个 是数据库的 名字
private String url="jdbc:sqlserver://localhost:1433;DataBaseName=XT004";
private String user="sa";
private String password="123456";
private Connection sqlcon=null;
private PreparedStatement pst=null;
/**
* 获取链接对象
* @return
* @throws SQLException
*/
private Connection GetConnection() throws SQLException{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return DriverManager.getConnection(url, user, password);
}
/**
* 执行insert,update,delete SQL语句
* @param sql
* @param objs
* @return
* @throws SQLException
*/
public int MyExecuteUpdate(String sql,Object ...objs) throws SQLException{
sqlcon=GetConnection();
pst=sqlcon.prepareStatement(sql);
if(objs!=null){
if(objs.length>0){
int idx=1;
for(Object obj : objs){
pst.setObject(idx, obj);
idx++;
}
}
}
int iline = pst.executeUpdate();
if(pst!=null){
pst.close();
}
if(sqlcon!=null){
sqlcon.close();
}
return iline;
}
public ResultSet GetResultSet(String sql,Object ...objs) throws SQLException{
sqlcon=GetConnection();
pst=sqlcon.prepareStatement(sql);
if(objs!=null){
if(objs.length>0){
int idx=1;
for(Object obj : objs){
pst.setObject(idx, obj);
idx++;
}
}
}
ResultSet rst = pst.executeQuery();
return rst;
}
/**
* 关闭数据库所有连接对象释放数据库连接资源
* @throws SQLException
*/
public void CloseAll() throws SQLException{
if(pst!=null){
pst.close();
}
if(sqlcon!=null){
sqlcon.close();
}
}
/**
* 执行多条sql语句 使用事务处理
* @param sqlList
* @param objsList
* @return
*/
public int MyTransaction(List<String> sqlList,List<Object[]> objsList){
int iline=-1;
try{
sqlcon=GetConnection();//获取链接对象
sqlcon.setAutoCommit(false);//取消事务的自动提交功能
if(sqlList.size()>0){
for(int i=0;i<sqlList.size();i++){
String sql=sqlList.get(i);//获取要执行的sql语句
Object [] objs=objsList.get(i);//获取要执行的sql语句的参数
pst=sqlcon.prepareStatement(sql);//创建pst对象
if(objs!=null){//为sql语句的参数赋值
if(objs.length>0){
int idx=1;
for(Object obj : objs){
pst.setObject(idx, obj);
idx++;
}
}
}
pst.execute();//执行sql语句
}
}
iline=1;
sqlcon.commit();//如果sql语句执行成功,则提交事务
}catch(SQLException e){
if(sqlcon!=null){
try {
sqlcon.rollback();//如果sql语句执行失败,则回滚事务
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}finally{
try{
if(pst!=null){
pst.close();
}
if(sqlcon!=null){
sqlcon.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
return iline;
}
}
---- 加载 驱动类
------------创建连接对象 ----------传送 sql语句 ----------处理结果-------
反射 里面的 功能(导入一个 jar包先)
DriverManage类 有 一个 创建对象的 方法 String sql="insert into goods values('爽歪歪','瓶',2.5,100)";
class.forName( Connection sqlcon=DriverM.getCon(a,ab,bc); Statement
stm=sqlcon.createStatement();
com.mic......SqlserverDriver);
需要 提供的 是 数据库的名字 ,账号,密码 int iline = stm.executeUpdate(sql); 普通的
插入,直接执行之后 返回一个 改变行数
String url="jdbc:sqlserver://localhost:1433;
DataBaseName=XT003";
String user="sa";
String password="123456";
1.如果 你需要 执行之后的 是一个 结果集
String sql="select * from goods";//编写查询sql语句
Statement stm=sqlcon.createStatement();
//第四步:执行查询语句并返回查询的结果集
ResultSet rst = stm.executeQuery(sql);
while(rst.next()){
int id = rst.getInt("id");
String gname=rst.getString("gname");
String gunit=rst.getString("gunit");
double gprice= rst.getDouble("gprice");
int icount=rst.getInt("icount");
System.out.println("编号:"+id+";名称:"+gname+";单位:"+gunit+";单价:"+gprice+";库存:"+icount);
}
3. 如果 说 : 你想 输入 变量 到 sql 语句,就需要用到
3.1 String sql="insert into goods values(?,?,?,?)";
Connection sqlcon=DriverManager.getConnection(url, user, password);
PreparedStatement pst = sqlcon.prepareStatement(sql);
// 一个一个赋值
p st.setString(1, "爽歪歪");
pst.setString(2, "桶");
pst.setDouble(3, 2.5);
pst.setInt(4, 100);
这个 不是查询的 结果集,于是 返回一个行数 int iline = pst.executeUpdate();
如果 是返回的 结果集 ,那么 还是 一样的
pst=sql.prepSta(sql语句);
Result rst= pst.executeQuery();
while(rst.next()){
你就直接写 数据库中 哪一行的 名字就行
rst.getObject("myName");
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
但是 在实际中 ,由于 经常的使用到 这几个方法,所以 我们会打包 号, 直接调用代码如下
public class DBManager {
这一个 是数据库的 名字
private String url="jdbc:sqlserver://localhost:1433;DataBaseName=XT004";
private String user="sa";
private String password="123456";
private Connection sqlcon=null;
private PreparedStatement pst=null;
/**
* 获取链接对象
* @return
* @throws SQLException
*/
private Connection GetConnection() throws SQLException{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return DriverManager.getConnection(url, user, password);
}
/**
* 执行insert,update,delete SQL语句
* @param sql
* @param objs
* @return
* @throws SQLException
*/
public int MyExecuteUpdate(String sql,Object ...objs) throws SQLException{
sqlcon=GetConnection();
pst=sqlcon.prepareStatement(sql);
if(objs!=null){
if(objs.length>0){
int idx=1;
for(Object obj : objs){
pst.setObject(idx, obj);
idx++;
}
}
}
int iline = pst.executeUpdate();
if(pst!=null){
pst.close();
}
if(sqlcon!=null){
sqlcon.close();
}
return iline;
}
public ResultSet GetResultSet(String sql,Object ...objs) throws SQLException{
sqlcon=GetConnection();
pst=sqlcon.prepareStatement(sql);
if(objs!=null){
if(objs.length>0){
int idx=1;
for(Object obj : objs){
pst.setObject(idx, obj);
idx++;
}
}
}
ResultSet rst = pst.executeQuery();
return rst;
}
/**
* 关闭数据库所有连接对象释放数据库连接资源
* @throws SQLException
*/
public void CloseAll() throws SQLException{
if(pst!=null){
pst.close();
}
if(sqlcon!=null){
sqlcon.close();
}
}
/**
* 执行多条sql语句 使用事务处理
* @param sqlList
* @param objsList
* @return
*/
public int MyTransaction(List<String> sqlList,List<Object[]> objsList){
int iline=-1;
try{
sqlcon=GetConnection();//获取链接对象
sqlcon.setAutoCommit(false);//取消事务的自动提交功能
if(sqlList.size()>0){
for(int i=0;i<sqlList.size();i++){
String sql=sqlList.get(i);//获取要执行的sql语句
Object [] objs=objsList.get(i);//获取要执行的sql语句的参数
pst=sqlcon.prepareStatement(sql);//创建pst对象
if(objs!=null){//为sql语句的参数赋值
if(objs.length>0){
int idx=1;
for(Object obj : objs){
pst.setObject(idx, obj);
idx++;
}
}
}
pst.execute();//执行sql语句
}
}
iline=1;
sqlcon.commit();//如果sql语句执行成功,则提交事务
}catch(SQLException e){
if(sqlcon!=null){
try {
sqlcon.rollback();//如果sql语句执行失败,则回滚事务
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}finally{
try{
if(pst!=null){
pst.close();
}
if(sqlcon!=null){
sqlcon.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
return iline;
}
}
相关文章推荐
- JAVA。String转Int
- RxJava_ _学了下RxJava
- 使用Java管理Azure(1):基础配置
- Spring4新特性:Groovy Bean定义DSL
- ExcelUtil工具类,使用Java代码操作Excel表格
- java 字节输入输出流
- 用Spring MVC优雅的实现301跳转
- Java将CST的时间字符串转换成需要的日期格式字符串
- 69 个经典 Spring 面试题和答案
- Java8简单的本地缓存实现
- springside4技术选型
- Java Web中的EL(表达式语言)详解
- java 解释readLine的原理及LineNumberReader的原理
- javaIo——运用字节流完整复制文件夹及文件
- 设计模式之二---观察者设计模式
- spring mvc传值 html取值
- java IO操作学习
- java 装饰设计模式
- 一个简单的Java单例示例谈谈并发
- java io流二-字符流输入输出缓冲区