SSM入门(SpringMVC+Spring+Mybatis)
1.配置:Maven、JDK、TOMCAT
Maven项目中的groupID和artifactID:
groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
比如我创建一个项目,我一般会将groupId设置为cn.snowin,cn表示域为中国,snowin是我个人姓名缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.snowin.testProj打头的,如果有个StudentDao,它的全路径就是cn.snowin.testProj.dao.StudentDao
2.配置文件的参数设置:
pom.xml文件:
添加相关依赖:如Oracle的连接
``com.oracle
ojdbc8
12.2.0.1
</dependency>
在maven项目中,在artifactId中输入ojdbc其他的会自动补充
jdbc.properties:
#jdbc:oracle:thin: 固定
#@localhost:本地IP地址127.0.0.1
#1521:端口号,一般默认是1521或1522
#orcl:数据库名称,orcl默认的数据库,一般在安装oracle数据库就存在
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=
数据库用户
password=
数据库的密码
3.mybatis的使用:
MyBatis核心配置文件–mybatis-config.xml
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 通过这个配置文件完成mybatis与数据库的连接 -->
<configuration>
<!-- 引入数据源配置 database.properties 文件 -->
<properties resource="database.properties"></properties>
<!--配置mybatis 运行中的一些行为 -->
<settings>
<!-- 设置Mybatis的log实现为LOG4J -->
<setting name="logImpl" value="LOG4J"/>
</settings>
<!-- 和Spring整合后environment配置都会被干掉 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,目前由mybatis来管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池,目前由mybatis来管理 -->
<dataSource type="POOLED"><!--有关于mysql数据库的各种信息-->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<!--将操作配置文件User.xml系添加进mapper-->
<mapper resource="mybatis/user.xml" />
</mappers>
</configuration>
创建实体类;
*创建SQL映射文件.xml;在该文件中可以进行sql语句的编写
1.#{} : 预编译
2.${} : 非预编译 sql拼接,不能防止sql注入
${}用法:
使用 去 接 收 参 数 信 息 , 在 一 个 参 数 时 , 默 认 情 况 下 必 须 使 用 {} 去接收参数信息,在一个参数时,默认情况下必须使用 去接收参数信息,在一个参数时,默认情况下必须使用{value}获取参数值,
#{}用法:
#{} 只是表示占位,与参数的名字无关,如果只有一个参数,可以使用任意参数名接收参数值,会自动对应。
推荐使用@Param注解指定参数名:
#{参数名},${参数名}
#{}接收多个参数:
**创建mapper接口;**在xml,中有一个namespace属性起到和接口对应的作用。第一种是不加namespace,把xml文件放在和接口相同的路径下,同时xml的名字与接口名字相同,如接口名为Student.java,xml文件为Student.xml。在相同的包下。这种当时可以不加namespace.
第二种是加namespace,通过namespace来查找对应的xml.
在mapper中的方法名与xml的sql 的id一致。
对于像 BlogMapper 这样的映射器类来说,还有另一种方法来完成语句映射。 它们映射的语句可以不用 XML 来配置,而可以使用 Java 注解来配置。比如,上面的 XML 示例可以被替换成如下的配置:
@Select("select * from user where id = #{id}")
User findById(@Param("id") long id);
@Select("select * from user where name = #{name}")
User findByName(@Param("name") String name);
@Select("select * from user where email = #{email}")
User findByEmail(@Param("email") String email);
ring name);
@Select(“select * from user where email = #{email}”)
User findByEmail(@Param(“email”) String email);
## 4.ssm项目的文件架构:
![ssm目录结构](https://img-blog.csdnimg.cn/20200727161957234.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MzUxMTM2,size_16,color_FFFFFF,t_70#pic_center)