准备工作
需要的依赖:junit(单元测试)、mysql(MySQL数据库)、spring-jdbc(jdbc)
正式开始
1. 写一个实体类User;
//这三个注解需要Lombok依赖,省去构造函数和getset方法
@Data//get、set方法和toString方法
@AllArgsConstructor//有参构造
@NoArgsConstructor//无参构造
public class User {
String userName;
int age;
String address;
}
2. 写工具类,用于获取Statement对象;(Statement对象用于执行不带参数的sql语句,Prepared Statement 用于执行预带参的sql语句,Callable Statement对象用于执行对存储过程中的调用)
public class MyBatisUtil {
public static Statement getStmt() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
//下列参数分别是 链接字符串、数据库名、密码
//通过DriverManager对象获取Connection对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis", "root", "123");
Statement stmt = connection.createStatement();//通过Connection对象创建Statement对象
return stmt;//返回Statement对象,用于执行sql
}
}
3. 写操作接口以及实现类;(根据提示抛出异常)
public interface UserDao {
public void addUser();
}
public class UserDaoImpl implements UserDao{
@Override
public void addUser() {
//先获取statement对象,然后用这个对象来执行sql
Statement stmt = new MyBatisUtil().getStmt();
stmt.execute("insert into User values('刘德华',23,'上海')");//返回值表示影响了几条数据
}
}
4. 最后编写测试类执行;
public class UserTest {
@Test
public void addUser() throws SQLException, ClassNotFoundException {
UserDao userDao = new UserDaoImpl();//获取接口
userDao.addUser();//执行接口里的方法
}
}