原始JDBC方式
package org.example;
import org.example.domain.User;
import java.sql.*;
import java.util.ArrayList;
public class App {
static Connection conn = null;
static PreparedStatement stmt = null;
static ResultSet rs = null;
public static void main( String[] args ) {
ArrayList<User> users = new ArrayList<User>();
try {
//注册mysql驱动
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mybatis";
String username = "root";
String password = "123456";
//创建连接对象
conn = DriverManager.getConnection(url, username, password);
String sql = "select * from user";
//创建prepareStatement(线程安全),Statement(线程不安全)
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
//遍历结果集
while(rs.next()){
User user = new User();
user.setNo(rs.getInt("uno"));
user.setName(rs.getString("uname"));
user.setEmail(rs.getString("email"));
users.add(user);
}
users.forEach(u -> System.out.println(u));
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
if(rs != null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
}
mybatis入门
1. 导入jar包
2. 在pom.xml中加入maven插件
3. 创建实体类 User
4. 创建dao 接口UserDao
5. 编写mapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.dao.UserDao">
<select id="selectUsers" resultType="org.example.domain.User">
select * from user;
</select>
<insert id="insertUser">
insert into user values(#{uno},#{uname},#{email})
</insert>
</mapper>
tips: 一般将mapper.xml文件放在与UserDao同一目录中,并且名称与dao接口相同.
6. 编写核心配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"></properties>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<environments default="operate">
<environment id="operate">
<!--
transactionManager:Mybatis提交事务,回滚事物的方式。
type:事物的类型
1) JDBC: 表示mybatis底层是调用JDBC中的Connection对象的,commit,rollback
2) MANAGED: 把mybatis事务处理委托给其他的容器(一个服务器软件,一个框架(Spring))
-->
<transactionManager type="JDBC"></transactionManager>
<!--
dataSource:
type: 指定数据源的类型。
1): 使用连接池,mybatis会创建PooledDataSource类
2): 不适用连接池,在每次执行sql语句,先创建连接,执行sql,在关闭连接
mybatis会创建一个UnPooledDataSource,管理Connection对象的使用
3): java命名和目录服务(windows注册表)
-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--
使用package加载mapper.xml:这个包的所有xml文件一次都加载给mybatis
要求:
1.mapper文件名需要和接口名称一样,区分大小写
2.mapper文件和dao接口需要在同一目录
<package name="org.example.dao"/>
-->
<mapper resource="org/example/dao/UserDao.xml"></mapper>
</mappers>
</configuration>
7. 创建测试类