一、MyBaits 程序

一、MyBaits 程序

​ 功能:操作数据库对象

第一种实现方式:xml配置

1)POJO实体类

public class User{

​ private name;

}

2)配置xml文件映射

<mapper namespace="POJO.user">
    <select id = "findById" parameterType = "int" resultType = "user">
    	SELECT * from t_user where id = #{id}
    
    </select>
    <update id = "update" parameterType = "user">
    	UPDATE t_user set uname=#{uname} where id =#{id}
    </update>
    <delete id ="delete" parameterType="user">
    	delete from t_user where id =#{id}
    </delete>
    <insert id ="insert" parameterType ="user">
    	insert into t_user(uid,uname) values (#{uid},#{uname})
    </insert>
	
</mapper>

3)编写测试类

public class Test{
    public  static void main(String []){
        //1、先读取配置文件
        InputStream is = Resouces.getResourceAsStream("mybaits-config.xml")
        //2、创建sqlsession工厂
        SqlSessionFactory ssf = new SqlSessionFactoryBuider.build(is)
            
       //3、开启会话
       SqlSession ss = ssf.opensession();
        
        //4、执行操作
        User user = ss.selectOne("findByID",1)
            
        //5、关闭会话
         ss.close()
             
         
    }
}
第二种实现方式:接口注解

1)POJO实体类

public class User{

	private name;

}

2)写一个操作这个实体类的接口

public interface UserMapper{
	@Select("select * from t_user where id=#{id}")
	Worker selectById(int id)
}

3)测试类调用接口

public void FindTest(){
     //1、先读取配置文件
        InputStream is = Resouces.getResourceAsStream("mybaits-config.xml")
        //2、创建sqlsession工厂
        SqlSessionFactory ssf = new SqlSessionFactoryBuider.build(is)
            
       //3、开启会话
       SqlSession ss = ssf.opensession();
    
    ---这些都一样,下面开始不一样,关键在于实例化出来一个接口对象---
    
    	//4、关键:先实例化出来一个接口
    	UserMapper ump = ss.getMapper(UserMapper.class)
            
         //5、调用接口下的指定方法
          Worker worker = ump.selectById(1)
            
           //6、关闭会话
         ss.close()
}

二、Spring_IOC

​ 功能:帮程序员实例化对象

方法一:xml文档配置

1)先自己随便写一个实体类

public class Hello(){
    private String name;
    public void show(){
        print("hello");
    }
}

2)xml文件中进行配置实例

<bean id = "hello" class = "com.Hello">
	//开始赋值
    <property name = "name" value="zhangsan"></property>
</bean>

3)测试类中测试生成

public class Test{
    main(){
        //1、初始化spring容器,读取xml配置
       ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml")
        //2、从容器中取出对象
         Hello hello =Hello)ac.getBean("hello")//利用bean的id取出
         //3、测试对象的功能
           hello.show()
           
       
    }
}
方法二:利用对类注解

其中:

@Component 是对常规实体类的注解

@Service 是对服务层类的类的注解

@Controller 是对控制层的类的注解

@Repository 是对DAO层的类的注解

1)创建实体类

@Component("user") 这个类实例化的对象名字叫user
public class User{
    @Value("xsx")
    private String name
}

2)创建各个层的接口及类

  • DAO层:需要调用实体对象

    public interface UserDao{
        public void save();
    }
    
    @Repository("userDAO")
    public class UserDaoImpl implements UserDao{
        public void save(){
            //1、加载spring容器 并读取对应配置
            ApplicationContext ac =new ClassPathXmlApplicationContext("appliconContext.xml")
            //2、从容器中取出对象
              User user = ac.getBean("user");
        }
    }
    
  • Service层:调用DAO对象

public interface Service{
    public void sace();
}

@Service("userService")
public class ServiceImpl implements Service(){
    //想要调用那个DAO对象
    @Resource(name = "userDao")
    public void save(){
        
    }
}
  • Controller层:想要调用service层
public interface Controller{
    public void save();
}

@Controller("controller")
public class ControllerImpl implements Controller{
    
    @Resource(name="service") or @Autowired
    private Service service;
    
    public void save(){
        
    }
}

三、Spring_AOP

​ 核心:在切面中配置切入点和增强的关系

基于注解的方法实现

1)首先是你要增强的类 也就是你的切入点

public class UserDaoImpl implements UserDao{
    public void insert() {
        System.out.println("添加用户信息"); }
    public void delete() {
        System.out.println("删除用户信息"); }
    public void update() {
        System.out.println("更新用户信息"); }
    public void select() {
        System.out.println("查询用户信息"); }
}

2)接下来是你的增强方法所在类

@Aspect
public class AnnoAdvice{
    
    //1、先声明你的切入点在那里
    @PointCut("execution(* com.itheima.demo03.UserDaoImp.*(..))")
    public void pointcut(){
        
    }
    
    //2、事务开始前想要执行的
    @Before("pointcut()")
    public void before(JointPoint jointpoint){
        print("before")
    }
}

常用的加入位置

@Before

@After:程序结束一定会执行

@AfterReturing

@AfterThrowing

四、SpringMVC

1)一个控制类:最简单的不带参数的

@Controller
public class FirstController{
    @RequestMapping("/firstController")
    public String Hello(){
        print("想要访问hello页面")
        return  "suceess";
    }
}
    

2)如果传来的数据带有参数

/*
	默认参数类型
			HttpServeletRequest
			Model

*/

@Controller
public class FirstController{
    @RequestMapping("/firstController")
    public String Hello(HttpServeletRequest re,Model model){
        print(re.getParameter("userid"))
        model.addAttribute("msg","nihao") //到时候在前端jsp就可以取出
        return  "suceess";
    }
}

veletRequest
Model

*/

@Controller
public class FirstController{
@RequestMapping(“/firstController”)
public String Hello(HttpServeletRequest re,Model model){
print(re.getParameter(“userid”))
model.addAttribute(“msg”,“nihao”) //到时候在前端jsp就可以取出
return “suceess”;
}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值