IDEA连接数据库及jdbc对dao层的安装
今日主要学习内容
idea连接数据库
连接数据库主要分为七步:
1.获取驱动
2.创建连接
3.编写sql
4.获取prepareStatement
5.执行sql语句,并返回结果
6.处理结果集
7.关闭资源
1.首先建立项目,再web文件夹下创建一个lib包,并在项目中导入相应的jar包
2.再数据库中建表并保存
3.编写连接数据库代码
public class TestUser {
public static void main(String[] args) throws SQLException {
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/first?useSSL=true&characterEncoding=utf-8&user=root&password=123456");
System.out.println("数据库连接成功" + conn);
//Connection conn = DriverManager.getConnection("jdbc:mysql:///java", "root","root");
String sql = "select *from tb_user";
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
while (rs.next()) {
System.out.println("用户id为" + rs.getInt(1));
System.out.println("用户姓名" + rs.getString(2));
System.out.println("用户密码" + rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
}
if (pstm != null) {
pstm.close();
}
if (conn != null) {
conn.close();
}
}
}
}
}
4.运行,显示结果如图,数据库连接成功。
jdbc对dao层的封装
dao:Data Access Object
将连接数据库 对其进行增删该查的函数写在Dao里
程序经常需要多次去数据库进行操作,要是每次都写连接太麻烦,所以直接写在一个类里用的时候可以直接调用。
- 属性封装
- Get set
User
user = new User();
User.get/set - 构造方法
User
user = new User(id,username,password) - toString 方法重写
处理结果集的时候,如果没有toString,遍历对象的时候就会出现一个对象的地址。
public class User {
//对属性的封装
private int id;
private String username;
private String password;
//get set
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//构造方法
public User(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public User(){
}
//toString 方法重写
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
//工具类
public class DBUtil {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/java?useSSL=true&characterEncoding=utf-8";
private static String user = "root";
private static String password = "123456";
static {
try {
//驱动
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
}
}
//连接
public static Connection get_Conn() throws SQLException {
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功");
return conn;
}
public static void get_CloseConn(ResultSet rs, PreparedStatement pstm, Connection conn) throws SQLException {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
}
if (pstm != null) {
pstm.close();
}
if (conn != null) {
conn.close();
}
}
}
//单元测试
public static void main(String[] args) {
try {
get_Conn();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
//直接和数据库做交互
public class UserDao {
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
//查询全部
public List<User> findAllUser() {
try {
//获取连接
DBUtil.get_Conn();
//获取存放sql语句的对象
conn.prepareStatement("select *from tb_user");
//执行sql并返回结果
rs = pstm.executeQuery();
//创建集合
List<User> userList = new ArrayList<>();
//遍历结果/处理结果
while (rs.next()) {
User user = new User();
user.setId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
userList.add(user);
System.out.println(userList);
}
return userList;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
了解ssm,mybatis,ssh,springMVC相关概念
JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架。
1.Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
2.MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。 MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain
Old Java Objects,普通的Java 对象)映射成数据库中的记录.
1)MyBATIS 目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby。
2)它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
3)mybatis与hibernate的对比?
mybatis提供一种“半自动化”的ORM实现。这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言,“全自动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的自动生成和执行。 而mybatis的着力点,则在于POJO与SQL之间的映射关系。
3.SSH在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。 Struts对Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
4.Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发。
小结
今天跟着老师的教学学习了idea的基本操作,以及dao的封装。 在学框架之前,写项目时总是要花大量的时间去写数据库操作层代码,这样会大大降低我们的效率,为了解决这个问题,对DAO层进行封装让我们只需要写sql语句,不需要再写繁琐的数据库操作语句,增强代码的复用性,让我们把主要精力放在业务逻辑上。
因为之前对于编码的不太熟悉,今天的编写过程不太顺利,并且对于老师布置的任务(继续完成dao的封装)未能完全完成。但是对于结构有了一定的熟悉,对且能够自主地完成数据库地连接,相对来说一个进步。