1.@Controller
2.@Autowired
3.@Component分成三个注解
@Repository 可以把一个DAO层变成一个bean:
@Service 可以把一个service的变成bean
@controller 可以把一个controller变成一个bean
4.@RequestMapping
5.@RequestParam
6. @Qualifier(“UserService”)
可以按照bean的id进行配置 给属性按名称赋值
@Autowired 注解可以按类型注入相关的属性值,但是有一个问题,按类型注入一个类型只能出现一个bean
假如说你按类型注入的时候报错了,那么你其实还可以按照BeanID的形式指定需要注入的bean
例如:
@Autowired
@Qualifier("qr1")
private QueryRunner qr;
7.modeAndView
8.JPA注解
8.1 @Entity
@Entity说明这个class是实体类,并且使用默认的orm规则,即class名对应数据库表中表名,class字段名即表中的字段名。
(如果想改变这种默认的orm规则,就要使用@Table来改变class名与数据库中表名的映射规则,@Column来改变class中字段名与db中表的字段名的映射规则)
元数据属性说明:
• name: 表名
@Entity
@Table(name="ACCOUNT")
public class Account {
8.2 @Table
Table用来定义entity主表的name,catalog,schema等属性。
元数据属性说明:
• name: 表名
• catalog: 对应关系数据库中的catalog
• schema:对应关系数据库中的schema
• UniqueConstraints:定义一个UniqueConstraint数组,指定需要建唯一约束的列
@Entity
@Table(name="ACCOUNT")
public class Account {
8.3 @Id
声明当前field为映射表中的主键列。
id值的获取方式有五种:TABLE(主键表), SEQUENCE(序列), IDENTITY(自增), AUTO(自动), NONE(手动指定)。
Oracle和DB2支持SEQUENCE,SQL Server和Sybase支持IDENTITY,MySQL支持AUTO。
所有的数据库都可以指定为AUTO,我们会根据不同数据库做转换。
NONE (默认)需要用户自己指定Id的值。
元数据属性说明:
• generate():主键值的获取类型
• generator():TableGenerator的名字(当generate=GeneratorType.TABLE才需要指定该属性)
此处我们是通过使用 @GeneratedValue 的性质来指定主键自增策略;
其中 strategy 代表 主键策略 GenerationType.IDENTITY 代表使用主键自增策略
@Id
@Column(name="A_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer aid; // 主键
8.4 @Column
Column元数据定义了映射到数据库的列的所有属性:列名,是否唯一,是否允许为空,是否允许更新等。
元数据属性说明:
• name:列名。
• unique: 是否唯一
• nullable: 是否允许为空
• insertable: 是否允许插入
• updatable: 是否允许更新
• columnDefinition: 定义建表时创建此列的DDL
• secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。
此处我们使用@column 注解用来指定 属性名 和 列名的映射
@Column(name="A_NAME")
private String aname; // 客户姓名
@Column(name="A_MONEY")
private Double money; // 客户存款
@Column(name="A_CREATEDATE")
private Date createDate; // 开户时间