Jdbc初体验
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文介绍的是连接SQLServer数据库:
1.打开SQLServer的配置管理器:
2.打开TCP/IP的属性,IPALL的端口改为1433
3.打开服务,重新启动SQL Server(SQLEXPRESS)
4.下面开始写简易的JDBC:
String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bookDB";
String USERNAME = "sa";
String PASSWORD = "1234";
package com.ccec.jdbc; import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class jdbc {
private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bookDB";
private static final String USERNAME = "sa";
private static final String PASSWORD = "1234"; public boolean login(String username, String password) {
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null; try {
Class.forName(DRIVER);
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "select userName,pwd from userInfo where userName=? and pwd=?";
st = con.prepareStatement(sql);
st.setString(1, username);
st.setString(2, password);
rs = st.executeQuery(); if (rs.next()) {
System.out.println(username);
return true;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
}
5.封装后的JDBC
package com.ccec.jdbc; /**
* @author StayReal
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class jdbc {
// SQLServer驱动类的全名(包名.;类名)
private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// 连接的URL
private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bookDB";
// 登陆SQLServer的用户名
private static final String USERNAME = "sa";
// 登陆SQLServer的密码
private static final String PASSWORD = "1234";
// 数据库的对象声明
private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null; /**
* 加载驱动,建立连接
*
* @throws ClassNotFoundException
* @throws SQLException
*/
private void getConnection() throws ClassNotFoundException, SQLException {
Class.forName(DRIVER);
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} /**
* 执行查询
*
* @param sql
* 执行的SQL语句
* @param params
* Object数组 封装所有的SQL语句参数 顺序与SQL语句是参数顺序一致
* @return ResultSet 返回执行的结果
*/
public ResultSet execQuery(String sql, Object[] params) {
try {
getConnection();
pst = con.prepareStatement(sql);
setPrepareStatementParams(params);
rs = pst.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return rs;
} /**
* 执行增加、删除、修改SQL操作的方法
*
* @param sql
* 执行的参数化SQL语句
* @param params
* Object数组 封装所有的SQL语句参数 顺序与SQL语句是参数顺序一致
* @return int型 受影响的行数 -1表示出现异常
*/
public int execUpadte(String sql, Object[] params) {
try {
getConnection();
pst = con.prepareStatement(sql);
setPrepareStatementParams(params);
int affectedRows = pst.executeUpdate();
return affectedRows;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeAll();
}
return -1;
} /**
* 为PrepareStatement设置参数
*
* @param params
* 参数数组
* @throws SQLException
*/
private void setPrepareStatementParams(Object[] params) throws SQLException {
if (params != null) {
// 传一个数组的参数
for (int i = 0; i < params.length; i++) {
pst.setObject(i + 1, params[i]);
}
}
} /**
* 关闭Connection ,PrepareStatement,ResultSet
*/
private void closeAll() {
try {
if (rs != null) {
rs.close();
}
if (pst != null) {
pst.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Jdbc初体验的更多相关文章
- 19JDBC初体验
一.JDBC常用类和接口 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API.JDBC是Java访问数据库的标准规范,可以为 ...
- Spring JDBCTemplate连接SQL Server之初体验
前言 在没有任何框架的帮助下我们操作数据库都是用jdbc,耗时耗力,那么有了Spring,我们则不用重复造轮子了,先来试试Spring JDBC增删改查,其中关键就是构造JdbcTemplate类. ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- hibernate--CRUD初体验
hibernate的crud操作初体验. 看具体实例 package com.fuwh.model; import javax.persistence.Column; import javax.per ...
- 【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验
----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafk ...
- SpringBoot初体验及原理解析
一.前言 上篇文章,我们聊到了SpringBoot得以实现的幕后推手,这次我们来用SpringBoot开始HelloWorld之旅.SpringBoot是Spring框架对“约定大于配置(Conv ...
- 一 Hive安装及初体验
一 .Hive安装及初体验 1 .hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1直接使用hadoop面临的问题 ...
- SSH初体验系列--Hibernate--2--crud操作
Ok,今天比较详细的学习一下hibernate的C(create).R(read).U(update).D(delete) 相关api... 前言 Session: 是Hibernate持久化操作的基 ...
- Node.js 网页瘸腿爬虫初体验
延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器 ...
随机推荐
- ADO.NET DataSet、DataTable、DataRow、DataView的学习
对于一个datatable中的数据进行嵌套查询判断某几列数据是否相同从而确定这条数据是否一样,并确定他重复的次数COUNT1字段. 例如: DataTable dt = new DataTable() ...
- 在一个apk中调用另外一个apk中的activity
今天忽然想到如果要在一个activity中调用另外一个activity该怎么办呢? 感觉这个应该比较简单,应为activity的启动方式就两种:显式启动.隐式启动: 显式启动的话肯定不行,那就只能使用 ...
- 如何获取浏览器URL中查询字符串的参数
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...
- MYSQL 二进制还原
解决方法: mysqlbinlog bin_log_file_path_and_name | mysql -uroot -p 如: mysqlbinlog E:\DB\mysql_log\mysql_ ...
- Oracle 11g R2安装手册(图文教程)For Windows
1.Oracle 11g R2安装手册(图文教程)For Windows 1.下载Oracle 11g R2 for Windows版本,下载地址如下 官方网站: http://download.or ...
- jQuery停止事件冒泡
event.stopPropagation(); 在jQuery中提供了stopPropagation()方法来停止事件冒泡.终止事件在传播过程的捕获.目标处理或起泡阶段进一步传播.调用该方法后,该节 ...
- 为WPF项目创建单元测试
原文作者: 周银辉 来源: 博客园 原文地址:http://www.cnblogs.com/zhouyinhui/archive/2007/09/30/911522.html 可能你已发现一个问题, ...
- CentOs文件实时同步
1,生成数据序
- Hadoop-Yarn-HA集群搭建(搭建篇)
1.前提条件 我学习过程是一块一块深入的,在把hdfs基本弄懂以及HA成功的情况开始尝试搭建yarn的,建议在搭建前先去看一下转载的原理篇,懂了原理后搭建会很快的,再次强调一下hdfs我默认已经搭建成 ...
- win下vm10+mac os 10.9安装遇到问题
在windows 8下安装vm10.0.0+mac os 10.9遇到问题记录例如以下: 一.因为之前我装的vm9+mac os 10.7: 二.准备安装mac os 10.9,把vm9换成vm10: ...