jsp代码实现利用MyBatis完成数据库的访问。创建一张t book 表,表中字段为—— id(PK, int,4), name(char,20), price(double),pubDate(date),分别表示主键、书名、价格和出版日期。运行程序,将表中记录全部显示,之后,输入书名,按书名完成查询并显示查询结果。
时间: 2023-12-03 10:46:33 浏览: 62
jsp编写与数据库连接·,在界面上实现一些操作
4星 · 用户满意度95%
首先,需要先在数据库中创建t_book表,SQL代码如下:
```
CREATE TABLE t_book (
id INT(4) PRIMARY KEY,
name CHAR(20),
price DOUBLE,
pubDate DATE
);
```
接下来,需要在MyBatis配置文件中配置数据库连接信息,以及映射文件的位置和命名空间,示例代码如下:
```xml
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/BookMapper.xml"/>
</mappers>
</configuration>
```
其中,`<dataSource>`标签中的`url`、`username`和`password`需要根据实际情况修改,`<mapper>`标签中的`resource`属性需要指向映射文件的位置。
接下来,需要创建一个Book类,用于表示t_book表中的一条记录,示例代码如下:
```java
public class Book {
private int id;
private String name;
private double price;
private Date pubDate;
// getter and setter methods
}
```
接着,在MyBatis映射文件中定义select和insert语句,示例代码如下:
```xml
<mapper namespace="com.example.mapper.BookMapper">
<select id="selectAll" resultType="Book">
SELECT * FROM t_book
</select>
<select id="selectByName" parameterType="String" resultType="Book">
SELECT * FROM t_book WHERE name = #{name}
</select>
</mapper>
```
其中,`<select>`标签中的`id`属性分别为selectAll和selectByName,分别表示查询全部记录和根据书名查询记录。`resultType`属性表示返回结果的类型,`parameterType`属性表示传入参数的类型,`#{name}`表示传入的参数。
最后,需要编写Java代码调用MyBatis的API,完成数据库访问。示例代码如下:
```java
public class Main {
public static void main(String[] args) throws Exception {
// 加载MyBatis配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 查询全部记录
List<Book> books = sqlSession.selectList("com.example.mapper.BookMapper.selectAll");
for (Book book : books) {
System.out.println(book.getId() + ", " + book.getName() + ", " + book.getPrice() + ", " + book.getPubDate());
}
// 根据书名查询记录
Scanner scanner = new Scanner(System.in);
System.out.print("请输入书名:");
String name = scanner.nextLine();
Book book = sqlSession.selectOne("com.example.mapper.BookMapper.selectByName", name);
if (book != null) {
System.out.println(book.getId() + ", " + book.getName() + ", " + book.getPrice() + ", " + book.getPubDate());
} else {
System.out.println("未找到记录");
}
// 关闭SqlSession
sqlSession.close();
}
}
```
在运行程序时,先会查询并显示全部记录,之后会提示用户输入书名,根据输入的书名查询记录并显示查询结果。
阅读全文