JDBC-SQLServer数据库(基于Java项目)
·
一、基于java项目用JDBC去操作数据库
1.1新建java项目
选择File–>New–>Project
选择java项目然后查看JDK版本一路Next最后Finish
建好之后项目结构如下
1.2 把基本的包构建出来

Controller 控制层
Dao数据层
Entity:实体类
Service:业务逻辑层
不管我们能不能用到 先把这些基本的包结构给构建出来,然后在对应的下边去写我们的码就可以
1.3创建数据表
1、打开我们的Microsoft SQL Server Management Studio
2、右键新建数据库
3、建表语句
CREATE TABLE [dbo].[user1] (
[id] int NOT NULL,
[name] varchar(255) COLLATE Chinese_PRC_CI_AS NULL
)
4、新建查询输入我们的建表语句
5、查看表
select * from user1
6、插入一条数据
insert into user1(id,name) values(1,'hello')
1.4导入JDBC驱动包

1.5开始写代码
1、我们现在dao层做一下数据库连接测试(测试一下连接数据库)
2、代码需要怎么写?
//前提 搞清楚需要用到的几个接口
private static Connection con; //数据库的连接 连接数据库的
private static Statement sta; //执行对象 用来执行SQL语句
private static ResultSet rs; //结果集 里边封装了查询的结果
//1、加载驱动类
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2、获取连接对象
Private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=demo01";;
con = DriverManager.getConnection(url, "SQLServer登陆用户名(一般为sa)", "数据库密码");
//3、根据连接对象获取执行对象
sta=con.createStatement();
//4、执行SQL语句处理返回值
String sql="select *from user1";
rs = sta.executeQuery(sql);
3、以上结果写完我们可以测试一下查询。
4、封装我们查询的结果
5、问题?这样写代码很冗余、加入我们要再 写一个插入、删除、修改。还需要重复之前的步骤吗?
当然不用我们可以进行工具类的提取!把以上获取连接对象 或者增删改查都封装起来!
完整代码:
DBManager
package utile;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBManager {
private Connection con;
private Statement sta;
private ResultSet rs;
/********************静态块可以提高效率***********/
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 加载驱动程序
*/
public Connection getConnection() {
/****1433是你自己的SQLserver端口号(默认是1433)*********/
/**************DatabaseName是你要连接的数据库名称*********/
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
try {
/**第一个sa是你的SQLserver用户名,第二个是此用户名所对应的密码***/
con = DriverManager.getConnection(url, "sa", "123456rw");
sta = con.createStatement();
System.out.println("链接成功");
} catch (SQLException e) {
System.out.println("连接失败");
e.printStackTrace();
}
return con;
}
/*public DBManager() {
List<Connection> list = new ArrayList<Connection>();
for (int i = 0; i < 5; i++) {
list.add(this.getConnection());
}
this.con = list.get(0);
}*/
public int update(String sql) {
int row = -1;
con = getConnection();
try {
row = sta.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.close();
}
return row;
}
public ResultSet query(String sql) {
con = getConnection();
try {
rs = sta.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public void close() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (sta != null) {
sta.close();
sta = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
写一个UserService去测试
package service;
import utile.DBManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserService {
private static DBManager dbManager;
public static void selectList() {
dbManager=new DBManager();
String sql="select * from user1";
ResultSet resultSet=dbManager.query(sql);
try {
while (resultSet.next()){
System.out.println(resultSet.getObject(2));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
UserService.selectList();
}
}
更多推荐
所有评论(0)