2018-07-31

MySQL

 package oop_emp.com.neusoft.dao;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; /**
* 数据库操作基础类
*
* @author xxf
*
*/
public class BaseDao {
// 创建4个常量(数据库连接地址,数据库驱动类地址,数据库登录权限名,登录密码)
private static final String DRIVER="com.mysql.jdbc.Driver";
private static final String URL="jdbc:mysql://localhost:3306/emp?characterEncoding=utf-8";
private static final String UNAME="root";
private static final String UPWD="123456"; // 使用静态块加载数据库的驱动
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 声明三个核心接口对象(Connection,PreparedStatment,ResultSet)
private Connection conn = null;// 数据库连接的对象
private PreparedStatement pstmt = null;// SQL命令预处理并执行操作的对象
protected ResultSet res = null;// 查询后返回的结果集对象
// 编写创建数据库连接对象的方法(DriverManager)
private void getConn() {
try {
conn = DriverManager.getConnection(URL, UNAME, UPWD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // 编写关闭数据库释放资源的方法
protected void colseAll() {
if (null != res) {
try {
res.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != pstmt) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} // 编写数据库的查询方法
protected ResultSet excuteSelect(String sql, Object[] params) {
// 调用数据库连接对象的方法
this.getConn();
// 创建预处理对象
try {
pstmt = conn.prepareStatement(sql);
// 通过for循环对参数进行预处理
if (null != params) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i+1, params[i]);
}
}
// 操作查询并返回结果集
res = pstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return res;
}
// 编写数据库的增删改的方法
protected int excuteEdit(String sql,Object[] params){
int count = 0;
//调用数据库连接对象的方法
this.getConn();
try {
//创建SQL命令预处理执行操作的对象
pstmt = conn.prepareStatement(sql);
//对参数进行预处理
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i+1, params[i]);
}
//接收操作执行返回的行数
count = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
this.colseAll();
}
return count;
} }
 public class TestJDBC3
{
public static void main(String[] args)
{
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/otherww? useUnicode=true&characterEncoding=utf8";
String user = "root";
String password = "123456";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null; String sql = "select name,money,id,age from student"; try
{
// 1,加载驱动
Class.forName(driver);
// 2,获得连接
conn = DriverManager.getConnection(url, user, password);
// 3,获得状态集
pstmt = conn.prepareStatement(sql);
// 4,获得结果集
rs = pstmt.executeQuery();
// 5,处理结果集
while (rs.next())
{
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
double money = rs.getDouble("money");
Student s = new Student();
s.setId(id);
s.setStuName(name);
s.setAge(age);
s.setMoney(money);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
//6,释放资源
try
{
if(null != rs)
{
rs.close();
}
if(null != pstmt)
{
pstmt.close();
}
if(null != conn)
{
conn.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}

Oracle

 package com.neusoft.dao;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; /**
* 数据库操作基础类
*
* @author xxf
*
*/
public class BaseDao {
// 创建4个常量(数据库连接地址,数据库驱动类地址,数据库登录权限名,登录密码)
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
private static final String UNAME = "scott";
private static final String UPWD = "123"; // 使用静态块加载数据库的驱动
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 声明三个核心接口对象(Connection,PreparedStatment,ResultSet)
private Connection conn = null;// 数据库连接的对象
private PreparedStatement pstmt = null;// SQL命令预处理并执行操作的对象
protected ResultSet res = null;// 查询后返回的结果集对象
// 编写创建数据库连接对象的方法(DriverManager)
private void getConn() {
try {
conn = DriverManager.getConnection(URL, UNAME, UPWD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // 编写关闭数据库释放资源的方法
protected void colseAll() {
if (null != res) {
try {
res.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != pstmt) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} // 编写数据库的查询方法
protected ResultSet excuteSelect(String sql, Object[] params) {
// 调用数据库连接对象的方法
this.getConn();
// 创建预处理对象
try {
pstmt = conn.prepareStatement(sql);
// 通过for循环对参数进行预处理
if (null != params) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i+1, params[i]);
}
}
// 操作查询并返回结果集
res = pstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return res;
}
// 编写数据库的增删改的方法
protected int excuteEdit(String sql,Object[] params){
int count = 0;
//调用数据库连接对象的方法
this.getConn();
try {
//创建SQL命令预处理执行操作的对象
pstmt = conn.prepareStatement(sql);
//对参数进行预处理
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i+1, params[i]);
}
//接收操作执行返回的行数
count = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
this.colseAll();
}
return count;
} }

逆袭之旅DAY31.XIA.JDBC的更多相关文章

  1. 逆袭之旅DAY.XIA.Object中常用方法

    2018-07-31

  2. 逆袭之旅DAY30.XIA.集合

    2018年7月26日 面试题:List和set的区别 ArrayList 遍历效率较高,但添加和删除较慢 遍历集合最高效的方法:迭代器 集合的遍历: 迭代器:Iterator 创建 为什么使用泛型: ...

  3. 逆袭之旅DAY28.XIA.异常处理

    2018-07-24  14:42:24 第一种: 第二种: 第三种:  执行 try--catch--finally--return(执行return  退出方法) 代码示例: 输入数字,输出对应课 ...

  4. 逆袭之旅DAY24.XIA.二重进阶、双色球

    一. 选择题. 1. 以下关于二重循环的说法正确的是(D). A. 二重循环就是一般程序中只能有两个循环 B. While循环不能嵌套在for循环里 C. 两个重叠的循环不能嵌套在第三个循环里. D. ...

  5. 逆袭之旅DAY24.XIA.数组练习

    2018-07-20 08:40:19 1. public void stringSort(){ String[] s = new String[]{"George"," ...

  6. 逆袭之旅DAY20.XIA.程序调试

    2018-07-16 20:25:50 F5:进入方法 F6:单步执行

  7. 逆袭之旅DAY20.XIA.循环结构

    2018-07-16 19:53:47 while循环 do do...while循环 for 循环

  8. 逆袭之旅DAY20.XIA.选择结构

    2018-07-16  18:50:49 本章目标: 基本if选择结构 逻辑运算符 多重if选择结构 嵌套if选择结构 什么是if选择结构: if选择结构是根据条件判断之后再做处理 import ja ...

  9. 逆袭之旅DAY20.xia.师父指导.数据类型

    2018-07-16  09:35:57 基础是王道 从码农--软件工程师--软件架构师 String 首字母大写,特殊引用类型,常量类 二.数组 存钱罐(只能放钱) 数据兼容 数组的长度(定义后长度 ...

随机推荐

  1. javaee开发模式

    model1模式:技术组成:jsp+javaBeanmodel1的弊端:随着业务复杂性 导致jsp页面比较混乱model2模式:技术组成:jsp+servlet+javaBeanmodel2的优点:开 ...

  2. eclipse maven maven-compiler-plugin 报错 完全解决

    报错如下: Maven install失败 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:comp ...

  3. MySQL中的排序(ORDER BY)

    当使用 SELECT FROM 时,如果不排 序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺 序将会受到MySQL重用回收存储 ...

  4. mui 访问系统相册将图片显示到网页

    访问系统相返回值为一个对象,通过转换为字符串可以查看,path.files[0]为返回路径去除路径赋值到src 调用摄像头返回的相片的path为一个路径通过 plus.io.resolveLocalF ...

  5. ionic 页面传递参数

    1.使用AngularJS自带的$cacheFactory服务 $cacheFactory 从字面直译即为缓存工厂,可以用它来生成缓存对象,缓存对象以key-value的方式进行数据的存储,在整个应用 ...

  6. 第 3 章 镜像 - 021 - Docker 镜像小结

    镜像小结 镜像的常用操作子命令: images    显示镜像列表 history   显示镜像构建历史 commit    从容器创建新镜像 build     从 Dockerfile 构建镜像 ...

  7. codeforces736b Taxes (Codeforces Round #382 (Div. 1))

    题意:纳税额为金额的最大因数(除了本身).为了逃税将金额n分为n1+n2+.......问怎样分纳税最少. 哥德巴赫猜想: 任一大于2的偶数都可写成两个质数之和. 质数情况: 任何大于5的奇数都是三个 ...

  8. 关于JAVA项目中的常用的异常处理情况总结

    1. JAVA异常处理 在面向过程式的编程语言中,我们可以通过返回值来确定方法是否正常执行.比如在一个c语言编写的程序中,如果方法正确的执行则返回1.错误则返回0.在vb或delphi开发的应用程序中 ...

  9. spark app

    使用Spark和Scala分析Apache访问日志 http://www.jdon.com/bigdata/analyzing-apache-access-logs-files-spark-scala ...

  10. Android--------WebView+H5开发仿美团 预加载,加载失败和重新加载

    Android嵌入式开发已经占大多数了,很多界面都是以网页的形式展示,WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. 本博客主要是模仿美团的旅游出行模块的预加载,网页加载失 ...