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服务器 ...
随机推荐
- SecureCRT 绝佳配色方案
终端有一个好的配色,不仅能保护自己的眼睛,也能给人一个好心情,本配色方案适合任意一种SSH客户端软件. 设置背景颜色 Options => Sessions options => Term ...
- 连接mysql数据库2+操作入门
package 对数据库操作Statment; import java.sql.Connection; import java.sql.DriverManager; import java.sql.R ...
- linux 下idea 启动tomcat报JMX 1099错误解决办法
开始使用linux开发环境,在配置idea 下tomcat 启动时报错,提示错误为unable to ping server at localhost:1099. 解决办法: 修改/etc/hosts ...
- 实现JSON数据的存储和读取
事前准备: //创建一个Crime类 public class Crime { private String mTitle; private UUID mUUID; private Date mDat ...
- 用include()和ob_get_contents( )方法 生成静态文件
1. 生成静态文件可以在打开缓冲区的前提下,用include()方法去包含要执行的动态文件,这样该动态文件就会在缓冲区中执行,执行完毕后的静态HTML代码就保存在缓冲区中,然后用ob_get_cont ...
- linux下小记
今天碰到一个问题 记录下 /usr/bin/ld: cannot find ld 和ldconfig的区别 使用makefile编译的时候提示ld提示某个so找不到 当时使用ldconfig查了下 发 ...
- 无良教程-破解SublimeText3
这教程实际上并不是倡导大伙儿去破解软件然后传播出去以侵犯作者的权益,纯粹是技术分享,如果大伙儿觉得Low了,可立马删除. sublime text是我非常喜欢的一款编辑器,在ubuntu上,之前用的一 ...
- javascript - 工作笔记 (事件四)
在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装, JavaScript Code 12345 yx.bind(item, "click&quo ...
- C#的DLL注册为COM,Delphi来调用
非常实用的东西!过去知道这个方法的话可以解决多少问题啊 首先建立一个C#的DLL工程,写一个类 //Test.csnamespace Test...{public class MyTest...{pu ...
- servlet上传图片 服务器路径(转)
1.在servlet中上传图片,上传的文件夹是imge在webroot下,主要代码如下 private void saveImage(HttpServletRequest request, HttpS ...