Mybatis学习过程(一)

之前在学习JavaWeb中学习到了用JDBC来连接数据库。这几周开始学习了ssm框架的构建,其中的m就是MyBatis,因此在学习的过程中记录老师的讲解以及自己上网找的学习资料,汇编成自己的MyBatis学习笔记。

什么是MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

JDBC代码复习

在JavaWeb的JDBC的核心类中,有DriverMangerConnectionPreparedStatement,和ResultSet
JDBC的编写

public class DBUtil {
	private static final String URL="jdbc:mysql://localhost:3306/mysql";
	private static final String USERNAME="root";
	private static final String PASSWORD="123456";
	private static final String DRIVER ="com.mysql.jdbc.Driver";
	private static PreparedStatement ps=null;
	private static ResultSet rs=null;
	//获取链接对象
	public static Connection getConn() {
		Connection conn=null;
		try {
			//加载驱动
			Class.forName(DRIVER);
			//从驱动管理器中获取链接对象
			 conn= DriverManager.getConnection(URL, USERNAME, PASSWORD);
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	//查
	public static ResultSet getResultSet(String sql,Object...objects ) {
		try {
			ps =getConn().prepareStatement(sql);
			//设置参数
			for(int i=0,j=0;i<objects.length;i++) {	
				ps.setObject(++j, objects[i]);
			}
			rs =ps.executeQuery();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return rs;
	}
	//增、删、改
	public static boolean update(String sql, Object... objects) {
		try {
			ps = getConn().prepareStatement(sql);
			//设置参数
			for(int i=0,j=0;i<objects.length;i++) {	
				ps.setObject(++j, objects[i]);
			}
			return ps.executeUpdate()>0;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	} 
public List<Course> getCourseByStatus(String status) {
		String sql ="select * from course where status=?";
		ResultSet rs =DBUtil.getResultSet(sql, status);
		List<Course> courses = new ArrayList<Course>();
		Course course = null;
		try {
			while(rs.next()) {
				course = new Course();
				course.setId(rs.getInt("id"));
				course.setName(rs.getString("cname"));
				course.setPrice(rs.getInt("cprice"));
				course.setStatus(rs.getInt("status"));
				courses.add(course);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return courses;
	}

或者是直接在JDBC中

public class JDBCTest {
    public static void main(String[] args) throws Exception {
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 获取连接
            String url = "jdbc:mysql://localhost:3306/mysql";
            String user = "root";
            String password = "123456";
            connection = DriverManager.getConnection(url, user, password);
            // 获取statement,preparedStatement
            String sql = "select * from course where status=?";
            prepareStatement = connection.prepareStatement(sql);
            // 设置参数
            prepareStatement.setLong(1, 1l);
            // 执行查询
            rs = prepareStatement.executeQuery();
            // 处理结果集
     	try {
			while(rs.next()) {
				course = new Course();
				course.setId(rs.getInt("id"));
				course.setName(rs.getString("cname"));
				course.setPrice(rs.getInt("cprice"));
				course.setStatus(rs.getInt("status"));
				courses.add(course);
			}
        } finally {
            // 关闭连接,释放资源
            if (rs != null) {
                rs.close();
            }
            if (prepareStatement != null) {
                ps.close();
            }
            if (connection != null) {
                connection.close();
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值