mybatis注解
使用@符号后面写insert、delete、select等注解然后在括号中写SQL语句,原理与使用mapper的XML配置文件大同小异。
使用mybatis注解开发,可以省去类配置文件,简洁方便。但是比较复杂的SQL和动态SQL还是建议书写类配置文件。
代码如下:
public interface IUserMapper {
/**
* 新增用户
*
* @param user
* @return
*/
@Insert("insert into t_user (user_name,password,sex,salary) "
+ "values (#{u.userName},#{u.password},#{u.sex},#{u.salary})")
public int saveUserBean(@Param("u") UserBean user);
/**
* 更新用户
*
* @param user
* @param id
* @return
*/
@Update("update t_user set user_name = #{u.userName},password=#{u.password},"
+ "sex=#{u.sex},salary=#{u.salary} where id= #{id}")
public int updateUserBean(@Param("u") UserBean user, @Param("id") Integer id);
/**
* 删除用户
*
* @param id
* @return
*/
@Delete("delete from t_user where id = #{id}")
public int deleteUserBean(Integer id);
/**
* 根据名字与密码查询用户
*
* @param userName
* @param password
* @return
*/
@Select("select * from t_user where user_name = #{userName} and password = #{password}")
@Results({
@Result(id = true, property = "id", column = "id", javaType = Integer.class),
@Result(property = "userName", column = "user_name", javaType = String.class),
@Result(property = "password", column = "password", javaType = String.class),
@Result(property = "sex", column = "sex", javaType = String.class),
@Result(property = "salary", column = "salary", javaType = Double.class) })
public UserBean getUserBeanByNameAndPassword(
@Param("userName") String userName,
@Param("password") String password);
/**
* 查询所有用户
*
* @return
*/
@Select("select * from t_user")
@ResultMap(value = "userMap")
public List<UserBean> findAllUserBean();
/**
* 批量新增
*
* @param users
* @return
*/
public int batchAddUserBean(List<UserBean> users);
/**
* 批量删除
*
* @param ids
* @return
*/
public int batchDeleteUserBean(List<Integer> ids);
/**
* 分页统计查询
*
* @return
*/
public int selectCountUserBeanByCondition(Map<String, Object> params);
/**
* 分页数据查询
*
* @param params
* @return
*/
public List<UserBean> selectUserBeanByCondition(Map<String, Object> params);
}
Spring框架
Spring的核心思想便是IoC和AOP,Spring本身是一个轻量级容器,Spring的组件就是普通的Java Bean,我们只需要编写好Java Bean组件,然后将它们"装配"起来就可以了,组件的初始化和管理均由Spring完成,只需在配置文件中声明即可。这种方式最大的优点是各组件的耦合极为松散
IOC:之前一直没搞懂,在网上搜到个易懂的解释,终于懂了,
IoC,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
正在业界为IoC争吵不休时,大师级人物Martin Fowler也站出来发话,以一篇经典文章《Inversion of Control Containers and the Dependency Injection pattern》为IoC正名,至此,IoC又获得了一个新的名字:“依赖注入 (Dependency Injection)”。相对IoC 而言,“依赖注入”的确更加准确的描述了这种古老而又时兴的设计理念。从名字上理解,
所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。
初步理解spring就是使用反射和工厂将类通过非new的方式取得。
核心:ApplicationContext
如:ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");