SpringMVC+JDBC:分页示例_MySQL
一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5
二 工程相关图片:
三 基本上参照之前示例修改得来,重点关注SimpleJdbcTemplate与JdbcTemplate用法
以下只列出比较重要的类
UserController.java
Java代码
- package com.liuzd.sj.web;
- import java.util.List;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.SessionAttributes;
- import org.springframework.web.servlet.ModelAndView;
- import com.liuzd.page.Page;
- import com.liuzd.sj.entity.User;
- import com.liuzd.sj.service.UserService;
- @Controller
- @RequestMapping("/user")
- @SessionAttributes("userList")
- public class UserController extends BaseController{
- private UserService userService;
- public UserService getUserService() {
- return userService;
- }
- @Resource
- public void setUserService(UserService userService) {
- this.userService = userService;
- }
- @RequestMapping("/userList")
- public ModelAndView userList(HttpServletRequest request){
- StringBuilder querySql = new StringBuilder();
- querySql.append("select * from users where 1=1 ");
- String oracleQuerySql = querySql.toString();
- //获取总条数
- Long totalCount = new Long(this.getUserService().pageCounts(oracleQuerySql));
- //设置分页对象
- Page page = executePage(request,oracleQuerySql,totalCount," id desc ");
- ModelAndView mv = new ModelAndView();
- //查询集合
-
List
users = this.getUserService().pageList(page.getQuerySql()); - mv.addObject("userList",users);
- mv.setViewName("userList");
- return mv;
- }
- @RequestMapping("/addUser")
- public ModelAndView addUser(HttpServletRequest request,User user){
- System.out.println("ADD USER: "+ user);
- this.userService.addUser(user);
- return userList(request);
- }
- @RequestMapping("/toAddUser")
- public String toAddUser(){
- return "addUser";
- }
- @RequestMapping("/delUser/{id}")
- public ModelAndView delUser(@PathVariable("id") String id,HttpServletRequest request){
- this.userService.delUser(new User().setId(id));
- return userList(request);
- }
- @RequestMapping("/getUser/{id}")
- public ModelAndView getUser(@PathVariable("id") String id){
- User user = this.userService.getUserById(new User().setId(id));
- ModelAndView mv = new ModelAndView("updateUser");
- mv.addObject("user",user);
- return mv;
- }
- @RequestMapping("/updateUser")
- public ModelAndView editUser(User user,HttpServletRequest request){
- System.out.println("编辑: "+user);
- this.userService.editUser(user);
- return userList(request);
- }
- }
package com.liuzd.sj.web; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; import com.liuzd.page.Page; import com.liuzd.sj.entity.User; import com.liuzd.sj.service.UserService; @Controller @RequestMapping("/user") @SessionAttributes("userList") public class UserController extends BaseController{ private UserService userService; public UserService getUserService() { return userService; } @Resource public void setUserService(UserService userService) { this.userService = userService; } @RequestMapping("/userList") public ModelAndView userList(HttpServletRequest request){ StringBuilder querySql = new StringBuilder(); querySql.append("select * from users where 1=1 "); String oracleQuerySql = querySql.toString(); //获取总条数 Long totalCount = new Long(this.getUserService().pageCounts(oracleQuerySql)); //设置分页对象 Page page = executePage(request,oracleQuerySql,totalCount," id desc "); ModelAndView mv = new ModelAndView(); //查询集合 List<user> users = this.getUserService().pageList(page.getQuerySql()); mv.addObject("userList",users); mv.setViewName("userList"); return mv; } @RequestMapping("/addUser") public ModelAndView addUser(HttpServletRequest request,User user){ System.out.println("ADD USER: "+ user); this.userService.addUser(user); return userList(request); } @RequestMapping("/toAddUser") public String toAddUser(){ return "addUser"; } @RequestMapping("/delUser/{id}") public ModelAndView delUser(@PathVariable("id") String id,HttpServletRequest request){ this.userService.delUser(new User().setId(id)); return userList(request); } @RequestMapping("/getUser/{id}") public ModelAndView getUser(@PathVariable("id") String id){ User user = this.userService.getUserById(new User().setId(id)); ModelAndView mv = new ModelAndView("updateUser"); mv.addObject("user",user); return mv; } @RequestMapping("/updateUser") public ModelAndView editUser(User user,HttpServletRequest request){ System.out.println("编辑: "+user); this.userService.editUser(user); return userList(request); } } </user>
BaseController.java
Java代码
- package com.liuzd.sj.web;
- import javax.servlet.http.HttpServletRequest;
- import com.liuzd.page.Page;
- import com.liuzd.page.PageState;
- import com.liuzd.page.PageUtil;
- /**
- *Title:
- *Description:
- *Copyright: Copyright (c) 2011
- *Company:http://liuzidong.iteye.com/
- *Makedate:2011-5-23 下午03:31:03
- * @author liuzidong
- * @version 1.0
- * @since 1.0
- *
- */
- public class BaseController {
- /**
- * oracel的三层分页语句
- * 子类在展现数据前,进行分页计算!
- * @param querySql 查询的SQL语句,未进行分页
- * @param totalCount 根据查询SQL获取的总条数
- * @param columnNameDescOrAsc 列名+排序方式 : ID DESC or ASC
- */
- protected Page executePage(HttpServletRequest request,String querySql,Long totalCount,String columnNameDescOrAsc){
- String oracleSql = PageUtil.createQuerySql(querySql,columnNameDescOrAsc);
- if(null == totalCount){
- totalCount = 0L;
- }
- /**页面状态,这个状态是分页自带的,与业务无关*/
- String pageAction = request.getParameter("pageAction");
- String value = request.getParameter("pageKey");
- /**获取下标判断分页状态*/
- int index = PageState.getOrdinal(pageAction);
- Page page = null;
- /**
- * index
- * 1 当首次调用时,分页状态类中没有值为 NULL 返回 -1
- * 2 当页面设置每页显示多少条: index=0,当每页显示多少条时,分页类要重新计算
- * */
- Page sessionPage = getPage(request);
- if(index 1){
- page = PageUtil.inintPage(oracleSql,totalCount,index,value,sessionPage);
- }else{
- page = PageUtil.execPage(index,value,sessionPage);
- }
- setSession(request,page);
- return page;
- }
- private Page getPage(HttpServletRequest request) {
- Page page = (Page)request.getSession().getAttribute(PageUtil.SESSION_PAGE_KEY);
- if(page == null){
- page = new Page();
- }
- return page;
- }
- private void setSession(HttpServletRequest request,Page page) {
- request.getSession().setAttribute(PageUtil.SESSION_PAGE_KEY,page);
- }
- }
package com.liuzd.sj.web; import javax.servlet.http.HttpServletRequest; import com.liuzd.page.Page; import com.liuzd.page.PageState; import com.liuzd.page.PageUtil; /** *Title: *Description: *Copyright: Copyright (c) 2011 *Company:http://liuzidong.iteye.com/ *Makedate:2011-5-23 下午03:31:03 * @author liuzidong * @version 1.0 * @since 1.0 * */ public class BaseController { /** * oracel的三层分页语句 * 子类在展现数据前,进行分页计算! * @param querySql 查询的SQL语句,未进行分页 * @param totalCount 根据查询SQL获取的总条数 * @param columnNameDescOrAsc 列名+排序方式 : ID DESC or ASC */ protected Page executePage(HttpServletRequest request,String querySql,Long totalCount,String columnNameDescOrAsc){ String oracleSql = PageUtil.createQuerySql(querySql,columnNameDescOrAsc); if(null == totalCount){ totalCount = 0L; } /**页面状态,这个状态是分页自带的,与业务无关*/ String pageAction = request.getParameter("pageAction"); String value = request.getParameter("pageKey"); /**获取下标判断分页状态*/ int index = PageState.getOrdinal(pageAction); Page page = null; /** * index <br>UserRowMapper.java <br> <p class="dp-highlighter"> </p><p class="bar"> </p><p class="tools">Java代码 </p> <ol class="dp-j"> <li> <span><span class="keyword">package</span><span> com.liuzd.sj.dao; </span></span> </li> <li> <span> </span> </li> <li> <span><span class="keyword">import</span><span> java.sql.ResultSet; </span></span> </li> <li> <span><span class="keyword">import</span><span> java.sql.SQLException; </span></span> </li> <li> <span> </span> </li> <li> <span><span class="keyword">import</span><span> org.springframework.jdbc.core.RowMapper; </span></span> </li> <li> <span> </span> </li> <li> <span><span class="keyword">import</span><span> com.liuzd.sj.entity.User; </span></span> </li> <li> <span> </span> </li> <li> <span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> UserRowMapper </span><span class="keyword">implements</span><span> RowMapper<user> { </user></span></span> </li> <li> <span> </span> </li> <li> <span> </span> </li> <li> <span> <span class="keyword">public</span><span> UserRowMapper(){} </span></span> </li> <li> <span> </span> </li> <li> <span> <span class="keyword">public</span><span> User mapRow(ResultSet rs, </span><span class="keyword">int</span><span> index) </span><span class="keyword">throws</span><span> SQLException { </span></span> </li> <li> <span> User user = <span class="keyword">new</span><span> User( </span></span> </li> <li> <span> rs.getString(<span class="string">"id"</span><span>), </span></span> </li> <li> <span> rs.getString(<span class="string">"name"</span><span>), </span></span> </li> <li> <span> rs.getString(<span class="string">"password"</span><span>), </span></span> </li> <li> <span> rs.getString(<span class="string">"address"</span><span>), </span></span> </li> <li> <span> rs.getString(<span class="string">"sex"</span><span>), </span></span> </li> <li> <span> rs.getInt(<span class="string">"age"</span><span>) </span></span> </li> <li> <span> ); </span> </li> <li> <span> <span class="keyword">return</span><span> user; </span></span> </li> <li> <span> } </span> </li> <li> <span>} </span> </li> </ol> <pre title="SpringMVC+JDBC:分页示例" class="java" style="DISPLAY: none" pre_index="2" source_url="http://liuzidong.iteye.com/blog/1067492" codeable_type="Blog" codeable_id="1067492" name="code">package com.liuzd.sj.dao; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; import com.liuzd.sj.entity.User; public class UserRowMapper implements RowMapper<user> { public UserRowMapper(){} public User mapRow(ResultSet rs, int index) throws SQLException { User user = new User( rs.getString("id"), rs.getString("name"), rs.getString("password"), rs.getString("address"), rs.getString("sex"), rs.getInt("age") ); return user; } } </user>
UserDAOImpl.java
Java代码
- package com.liuzd.sj.dao.impl;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import java.util.List;
- import javax.annotation.Resource;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.jdbc.core.PreparedStatementSetter;
- import org.springframework.stereotype.Repository;
- import com.liuzd.sj.dao.UserDAO;
- import com.liuzd.sj.dao.UserRowMapper;
- import com.liuzd.sj.entity.User;
- @Repository("userDao")
- public class UserDAOImpl implements UserDAO
- {
- private static final String INSERT = "insert into users(id,name,age,sex,address,password)VALUES(?,?,?,?,?,?)";
- private static final String UPDATE = "update users set name=?,age=?,sex=?,address=?,password=? where id=?";
- private static final String GET = "select * from users where id=?";
- private static final String CHECK = "select count(1) from users where name=? and password=?";
- private static final String SELECT = "select * from users";
- private static final String DEL = "delete users where id=?";
- private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate;
- public org.springframework.jdbc.core.JdbcTemplate getJdbcTemplate() {
- return jdbcTemplate;
- }
- @Resource
- public void setJdbcTemplate(
- org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
- public void addUser(final User user) {
- getJdbcTemplate().update(INSERT, new PreparedStatementSetter(){
- public void setValues(PreparedStatement ps)
- throws SQLException {
- int i = 0;
- ps.setString(++i, user.getId());
- ps.setString(++i, user.getName());
- ps.setInt(++i, user.getAge());
- ps.setString(++i,user.getSex());
- ps.setString(++i,user.getAddress());
- ps.setString(++i,user.getPassword());
- }
- });
- }
- public int checkUserExits(User user) {
- return getJdbcTemplate().queryForInt(CHECK, user.getName(),user.getPassword());
- }
- public void delUser(User user) {
- getJdbcTemplate().update(DEL, user.getId());
- }
- public void editUser(final User user) {
- getJdbcTemplate().update(UPDATE, new PreparedStatementSetter(){
- public void setValues(PreparedStatement ps)
- throws SQLException {
- int i = 0;
- ps.setString(++i, user.getName());
- ps.setInt(++i, user.getAge());
- ps.setString(++i,user.getSex());
- ps.setString(++i,user.getAddress());
- ps.setString(++i,user.getPassword());
- ps.setString(++i, user.getId());
- }
- });
- }
-
public List
getAllUser() { -
return getJdbcTemplate().query(SELECT, new BeanPropertyRowMapper
(User. class)); - }
- public User getUserById(User user) {
- return getJdbcTemplate().queryForObject(GET, new UserRowMapper(),user.getId());
- }
- public int pageCounts(String querySql) {
- return getJdbcTemplate().queryForInt("select count(1) from("+querySql+")");
- }
-
public List
pageList(String querySql) { - return getJdbcTemplate().query(querySql, new UserRowMapper());
- }
- }
package com.liuzd.sj.dao.impl; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import javax.annotation.Resource; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.PreparedStatementSetter; import org.springframework.stereotype.Repository; import com.liuzd.sj.dao.UserDAO; import com.liuzd.sj.dao.UserRowMapper; import com.liuzd.sj.entity.User; @Repository("userDao") public class UserDAOImpl implements UserDAO { private static final String INSERT = "insert into users(id,name,age,sex,address,password)VALUES(?,?,?,?,?,?)"; private static final String UPDATE = "update users set name=?,age=?,sex=?,address=?,password=? where id=?"; private static final String GET = "select * from users where id=?"; private static final String CHECK = "select count(1) from users where name=? and password=?"; private static final String SELECT = "select * from users"; private static final String DEL = "delete users where id=?"; private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate; public org.springframework.jdbc.core.JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } @Resource public void setJdbcTemplate( org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void addUser(final User user) { getJdbcTemplate().update(INSERT, new PreparedStatementSetter(){ public void setValues(PreparedStatement ps) throws SQLException { int i = 0; ps.setString(++i, user.getId()); ps.setString(++i, user.getName()); ps.setInt(++i, user.getAge()); ps.setString(++i,user.getSex()); ps.setString(++i,user.getAddress()); ps.setString(++i,user.getPassword()); } }); } public int checkUserExits(User user) { return getJdbcTemplate().queryForInt(CHECK, user.getName(),user.getPassword()); } public void delUser(User user) { getJdbcTemplate().update(DEL, user.getId()); } public void editUser(final User user) { getJdbcTemplate().update(UPDATE, new PreparedStatementSetter(){ public void setValues(PreparedStatement ps) throws SQLException { int i = 0; ps.setString(++i, user.getName()); ps.setInt(++i, user.getAge()); ps.setString(++i,user.getSex()); ps.setString(++i,user.getAddress()); ps.setString(++i,user.getPassword()); ps.setString(++i, user.getId()); } }); } public List<user> getAllUser() { return getJdbcTemplate().query(SELECT, new BeanPropertyRowMapper<user>(User.class)); } public User getUserById(User user) { return getJdbcTemplate().queryForObject(GET, new UserRowMapper(),user.getId()); } public int pageCounts(String querySql) { return getJdbcTemplate().queryForInt("select count(1) from("+querySql+")"); } public List<user> pageList(String querySql) { return getJdbcTemplate().query(querySql, new UserRowMapper()); } } </user></user></user>
UserDAOImpl2.java
Java代码
- package com.liuzd.sj.dao.impl;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.stereotype.Repository;
- import com.liuzd.sj.dao.UserDAO;
- import com.liuzd.sj.entity.User;
- import com.liuzd.util.BeanToMapUtil;
- @Repository("userDao2")
- public class UserDAOImpl2 implements UserDAO
- {
- private static final String INSERT = "insert into users(id,name,age,sex,address,password)VALUES(:id,:name,:age,:sex,:address,:password)";
- private static final String UPDATE = "update users set name=:name,age=:age,sex=:sex,address=:address,password=:password where id=:id";
- private static final String GET = "select * from users where id=?";
- private static final String CHECK = "select count(1) from users where name=? and password=?";
- private static final String SELECT = "select * from users";
- private static final String DEL = "delete users where id=?";
- private org.springframework.jdbc.core.simple.SimpleJdbcTemplate simpleJdbcTemplate;
- public org.springframework.jdbc.core.simple.SimpleJdbcTemplate getSimpleJdbcTemplate() {
- return simpleJdbcTemplate;
- }
- @Resource
- public void setSimpleJdbcTemplate(
- org.springframework.jdbc.core.simple.SimpleJdbcTemplate simpleJdbcTemplate) {
- this.simpleJdbcTemplate = simpleJdbcTemplate;
- }
- public void addUser(final User user) {
-
Map
userMap = BeanToMapUtil.beanToMap(user); - getSimpleJdbcTemplate().update(INSERT, userMap);
- }
- public int checkUserExits(User user) {
- return getSimpleJdbcTemplate().queryForInt(CHECK, user.getName(),user.getPassword());
- }
- public void delUser(User user) {
- getSimpleJdbcTemplate().update(DEL, user.getId());
- }
- public void editUser(final User user) {
-
Map
userMap = BeanToMapUtil.beanToMap(user); - getSimpleJdbcTemplate().update(UPDATE, userMap);
- }
-
public List
getAllUser() { -
return getSimpleJdbcTemplate().query(SELECT, new BeanPropertyRowMapper
(User. class)); - }
- public User getUserById(User user) {
-
return getSimpleJdbcTemplate().queryForObject(GET, new BeanPropertyRowMapper
(User. class),user.getId()); - }
- public int pageCounts(String querySql) {
- return getSimpleJdbcTemplate().queryForInt("select count(1) from("+querySql+")");
- }
-
public List
pageList(String querySql) { -
return getSimpleJdbcTemplate().query(querySql, new BeanPropertyRowMapper
(User. class)); - }
- }
package com.liuzd.sj.dao.impl; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Repository; import com.liuzd.sj.dao.UserDAO; import com.liuzd.sj.entity.User; import com.liuzd.util.BeanToMapUtil; @Repository("userDao2") public class UserDAOImpl2 implements UserDAO { private static final String INSERT = "insert into users(id,name,age,sex,address,password)VALUES(:id,:name,:age,:sex,:address,:password)"; private static final String UPDATE = "update users set name=:name,age=:age,sex=:sex,address=:address,password=:password where id=:id"; private static final String GET = "select * from users where id=?"; private static final String CHECK = "select count(1) from users where name=? and password=?"; private static final String SELECT = "select * from users"; private static final String DEL = "delete users where id=?"; private org.springframework.jdbc.core.simple.SimpleJdbcTemplate simpleJdbcTemplate; public org.springframework.jdbc.core.simple.SimpleJdbcTemplate getSimpleJdbcTemplate() { return simpleJdbcTemplate; } @Resource public void setSimpleJdbcTemplate( org.springframework.jdbc.core.simple.SimpleJdbcTemplate simpleJdbcTemplate) { this.simpleJdbcTemplate = simpleJdbcTemplate; } public void addUser(final User user) { Map<string> userMap = BeanToMapUtil.beanToMap(user); getSimpleJdbcTemplate().update(INSERT, userMap); } public int checkUserExits(User user) { return getSimpleJdbcTemplate().queryForInt(CHECK, user.getName(),user.getPassword()); } public void delUser(User user) { getSimpleJdbcTemplate().update(DEL, user.getId()); } public void editUser(final User user) { Map<string> userMap = BeanToMapUtil.beanToMap(user); getSimpleJdbcTemplate().update(UPDATE, userMap); } public List<user> getAllUser() { return getSimpleJdbcTemplate().query(SELECT, new BeanPropertyRowMapper<user>(User.class)); } public User getUserById(User user) { return getSimpleJdbcTemplate().queryForObject(GET, new BeanPropertyRowMapper<user>(User.class),user.getId()); } publ</user></user></user></string></string>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











전체 테이블 스캔은 MySQL에서 인덱스를 사용하는 것보다 빠를 수 있습니다. 특정 사례는 다음과 같습니다. 1) 데이터 볼륨은 작습니다. 2) 쿼리가 많은 양의 데이터를 반환 할 때; 3) 인덱스 열이 매우 선택적이지 않은 경우; 4) 복잡한 쿼리시. 쿼리 계획을 분석하고 인덱스 최적화, 과도한 인덱스를 피하고 정기적으로 테이블을 유지 관리하면 실제 응용 프로그램에서 최상의 선택을 할 수 있습니다.

예, MySQL은 Windows 7에 설치 될 수 있으며 Microsoft는 Windows 7 지원을 중단했지만 MySQL은 여전히 호환됩니다. 그러나 설치 프로세스 중에 다음 지점이 표시되어야합니다. Windows 용 MySQL 설치 프로그램을 다운로드하십시오. MySQL의 적절한 버전 (커뮤니티 또는 기업)을 선택하십시오. 설치 프로세스 중에 적절한 설치 디렉토리 및 문자를 선택하십시오. 루트 사용자 비밀번호를 설정하고 올바르게 유지하십시오. 테스트를 위해 데이터베이스에 연결하십시오. Windows 7의 호환성 및 보안 문제에 주목하고 지원되는 운영 체제로 업그레이드하는 것이 좋습니다.

InnoDB의 전체 텍스트 검색 기능은 매우 강력하여 데이터베이스 쿼리 효율성과 대량의 텍스트 데이터를 처리 할 수있는 능력을 크게 향상시킬 수 있습니다. 1) InnoDB는 기본 및 고급 검색 쿼리를 지원하는 역 색인화를 통해 전체 텍스트 검색을 구현합니다. 2) 매치 및 키워드를 사용하여 검색, 부울 모드 및 문구 검색을 지원합니다. 3) 최적화 방법에는 워드 세분화 기술 사용, 인덱스의 주기적 재건 및 캐시 크기 조정, 성능과 정확도를 향상시키는 것이 포함됩니다.

클러스터 인덱스와 비 클러스터 인덱스의 차이점은 1. 클러스터 된 인덱스는 인덱스 구조에 데이터 행을 저장하며, 이는 기본 키 및 범위별로 쿼리에 적합합니다. 2. 클러스터되지 않은 인덱스는 인덱스 키 값과 포인터를 데이터 행으로 저장하며 비 예산 키 열 쿼리에 적합합니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

MySQL 데이터베이스에서 사용자와 데이터베이스 간의 관계는 권한과 테이블로 정의됩니다. 사용자는 데이터베이스에 액세스 할 수있는 사용자 이름과 비밀번호가 있습니다. 권한은 보조금 명령을 통해 부여되며 테이블은 Create Table 명령에 의해 생성됩니다. 사용자와 데이터베이스 간의 관계를 설정하려면 데이터베이스를 작성하고 사용자를 생성 한 다음 권한을 부여해야합니다.

MySQL은 B-Tree, Hash, Full-Text 및 Spatial의 4 가지 인덱스 유형을 지원합니다. 1.B- 트리 색인은 동일한 값 검색, 범위 쿼리 및 정렬에 적합합니다. 2. 해시 인덱스는 동일한 값 검색에 적합하지만 범위 쿼리 및 정렬을 지원하지 않습니다. 3. 전체 텍스트 색인은 전체 텍스트 검색에 사용되며 다량의 텍스트 데이터를 처리하는 데 적합합니다. 4. 공간 지수는 지리 공간 데이터 쿼리에 사용되며 GIS 응용 프로그램에 적합합니다.

MySQL 및 MariaDB는 공존 할 수 있지만주의해서 구성해야합니다. 열쇠는 각 데이터베이스에 다른 포트 번호와 데이터 디렉토리를 할당하고 메모리 할당 및 캐시 크기와 같은 매개 변수를 조정하는 것입니다. 연결 풀링, 애플리케이션 구성 및 버전 차이도 고려해야하며 함정을 피하기 위해 신중하게 테스트하고 계획해야합니다. 두 개의 데이터베이스를 동시에 실행하면 리소스가 제한되는 상황에서 성능 문제가 발생할 수 있습니다.
