最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySql8.0對(duì)應(yīng)驅(qū)動(dòng)包匹配注意點(diǎn)+SpringBoot連接MySQL+多數(shù)據(jù)源配置教程

 更新時(shí)間:2026年03月29日 10:48:22   作者:A塵埃  
MySql8.0更新后,應(yīng)用程序需要更新對(duì)應(yīng)驅(qū)動(dòng)包,Maven配置、JDBC配置、Mybatis集成、多數(shù)據(jù)源配置等細(xì)節(jié)注意事項(xiàng),需注意驅(qū)動(dòng)包版本匹配、數(shù)據(jù)庫(kù)配置、類文件創(chuàng)建及配置等,并解決了項(xiàng)目啟動(dòng)過(guò)程中遇到的報(bào)錯(cuò)信息

MySql 8.0及對(duì)應(yīng)驅(qū)動(dòng)包匹配注意點(diǎn)

MySql 數(shù)據(jù)庫(kù)更新為8.0及以上后,對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)鏈接驅(qū)動(dòng)包也要更新為8.0版本。否則會(huì)報(bào)驅(qū)動(dòng)異常。

需要注意以下幾點(diǎn):

1.最新驅(qū)動(dòng)包Maven下載配置如下:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
</dependency>
<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-pool2</artifactId>
   <version>${common.pool.version}</version>
</dependency>

2.JDBC配置表更新如下:

以前版本

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://xxx.xx.xx.xxx:3306/db?characterEncoding=utf-8
jdbc.username=root
jdbc.password=admin

現(xiàn)在版本

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://xxx.xx.xx.xxx:3306/db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8

jdbc.username=root
jdbc.password=admin

---------全局如下配置

spring.datasource.url = jdbc:mysql://127.0.0.1:3306/cim?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username = cim
spring.datasource.password = f8HYPmssXL6XmZeK
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=MASTER_HIKARI_POOL
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.validation-timeout=600000

使用jdbcTemplate

①、依賴

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

maven編譯項(xiàng)目時(shí)報(bào)錯(cuò),信息如下:

解決方式一:在pom.xml文件增加如下配置信息

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <configuration>
      <skip>true</skip>
   </configuration>
</plugin>

解決方式二:使用命令參數(shù),如下所示:

②、在resource文件夾下application.properties配置文件中增加數(shù)據(jù)庫(kù)參數(shù)

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dba
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=1000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

③、測(cè)試

@RestController
@RequestMapping("/jte")
public class JdbcTemplateController {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @RequestMapping("/getUsers")
    public List<Map<String, Object>> getDbType(){
        String sql = "select * from boot_user";
        List<Map<String, Object>> list =  jdbcTemplate.queryForList(sql);
        for (Map<String, Object> map : list) {
            Set<Entry<String, Object>> entries = map.entrySet( );
                if(entries != null) {
                    Iterator<Entry<String, Object>> iterator = entries.iterator( );
                    while(iterator.hasNext( )) {
                    Entry<String, Object> entry =(Entry<String, Object>) iterator.next( );
                    Object key = entry.getKey( );
                    Object value = entry.getValue();
                    System.out.println(key+":"+value);
                }
            }
        }
        return list;
    }
    
}

啟動(dòng)Maven項(xiàng)目,輸入地址:

http://localhost:8080/jte/getUsers

通過(guò)瀏覽器訪問(wèn)后,返回參數(shù)如下:

集成Mybatis

①、添加依賴

<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.0.0</version>
</dependency>

②、在resource文件夾下application.properties配置文件中增加數(shù)據(jù)庫(kù)參數(shù)

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dba
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=1000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

③、mapper接口類和xml文件

public interface BootUserMapper {

    List<BootUser> selectAll();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yoodb.study.demo02.mapper.BootUserMapper" >
    <resultMap id="BaseResultMap" type="com.yoodb.study.demo02.bean.BootUser" >
        <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="user_name" property="name" jdbcType="VARCHAR" />
        <result column="detail" property="detail" jdbcType="VARCHAR" />
    </resultMap>
    <select id="selectAll" resultMap="BaseResultMap">
    select
         id, user_name, detail
    from boot_user order by detail asc
    </select>
</mapper>
public class BootUser {
    private String id;
    private String name;
    private String detail;
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }
}

④業(yè)務(wù)類

@Service
public class BootUserService {
    
    @Autowired
    private BootUserMapper mapper;
    public List<BootUser> getUsers(){
         return mapper.selectAll();
    }
}
@RestController
@RequestMapping("/myt")
public class BootUserController {
    @Autowired
    private BootUserService service;
    @RequestMapping("/getUsers")
    public List<BootUser> getUsers() {
        List<BootUser> list = service.getUsers();
        return list;
    }

}

啟動(dòng)Maven項(xiàng)目,通過(guò)瀏覽器訪問(wèn)http://localhost:8080/myt/getUsers

解決方案:

<resources>
   <resource>
      <directory>src/main/java</directory>
      <includes>
         <include>**/*.xml</include>
      </includes>
   </resource>
</resources>

重新啟動(dòng)Maven項(xiàng)目,輸入地址: 

http://localhost:8080/myt/getUsers

多數(shù)據(jù)源配置

一、Spring Boot集成MyBatis和使用JdbcTemplate配置公共文件

有兩個(gè)數(shù)據(jù)源來(lái)配置實(shí)現(xiàn),分別對(duì)應(yīng)的名字是oneDataSource和twoDataSource

在application.properties文件中配置數(shù)據(jù)源信息如下:

spring.datasource.one.url=jdbc:mysql://123.57.47.154:3306/springboot1
spring.datasource.one.username=root
spring.datasource.one.password=wangyoodb
spring.datasource.one.driverClassName=com.mysql.cj.jdbc.Driver

spring.datasource.two.url=jdbc:mysql://123.57.47.154:3306/springboot2
spring.datasource.two.username=root
spring.datasource.two.password=wangyoodb
spring.datasource.two.driverClassName=com.mysql.cj.jdbc.Driver

二、配置類進(jìn)行加載DataSource

  • @Configuration:用于定義配置類,可替換xml配置文件,被注解的類內(nèi)部包含有一個(gè)或多個(gè)被@Bean注解的方法。這些方法將會(huì)被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext類進(jìn)行掃描,并用于構(gòu)建bean定義,初始化Spring容器
  • @MapperScan:指定要掃描mapper類包的路徑,配置mybatis的接口存放位置
  • @Bean:用于告訴方法產(chǎn)生一個(gè)Bean對(duì)象,然后這個(gè)Bean對(duì)象交給Spring管理
  • @ConfigurationProperties:是Spring Boot提供的類型安全的屬性綁定,以第一個(gè)Bean為例。@ConfigurationProperties(prefix = “spring.datasource.one”)表示使用spring.datasource.one前綴的數(shù)據(jù)庫(kù)配置去創(chuàng)建一個(gè)DataSource
  • @Primary:可以理解為默認(rèn)優(yōu)先選擇,不可以同時(shí)設(shè)置多個(gè),必須增加此注解用于區(qū)分主數(shù)據(jù)庫(kù)(默認(rèn)數(shù)據(jù)庫(kù))。
  • @Qualifier:來(lái)達(dá)到注入某個(gè)特指bean的作用,表示查找Spring容器中指定名字的對(duì)象

【bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(“***”)) mapper的xml形式文件位置必須要配置,不然項(xiàng)目會(huì)報(bào)no statement錯(cuò)誤信息?!?/p>

@Configuration
@MapperScan(basePackages = "com.yoodb.study.demo03.mapper.one", sqlSessionFactoryRef = "oneSqlSessionFactory")
public class DataSourceOneConfig{
	
	@Bean(name = "oneDataSource")
	@Primary
	@ConfigurationProperties(prefic = "spring.datasource.one")
	public DataSource getDateSourceOne(){
		return DataSourceBuilder.create().build();
	}

	@Bean(name="oneSqlSessionFactory")
	@Primary
	public SqlSessionFactory oneSqlSessionFactory(@Qualifier("oneDataSource") DataSource datasource) throws Exception{
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(datasource);
		bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/one/*.xml"));
		return bean.getObject();
	}

	@Bean("oneSqlSessionTemplate")
	@Primary
	public SqlSessionTemplate onesqlsessiontemplate(@Qualifier("oneSqlSessionFactory") SqlSessionFactory sessionfactory){
		return new SqlSessionTemplate(sessionfactory);
	}
}
@Configuration
@MapperScan(basePackages = "com.yoodb.study.demo03.mapper.two", sqlSessionFactoryRef = "twoSqlSessionFactory")
public class DataSourceTwoConfig {

    @Bean(name = "twoDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.two")
    public DataSource getDateSourceTwo(DataSourceProperties properties) {
        return DataSourceBuilder.create(properties.getClassLoader())
                .type(HikariDataSource.class)
                .driverClassName(properties.determineDriverClassName())
                .url(properties.determineUrl())
                .username(properties.determineUsername())
                .password(properties.determinePassword())
                .build();
    }
    
    @Bean(name = "twoSqlSessionFactory")
    public SqlSessionFactory twoSqlSessionFactory(@Qualifier("twoDataSource") DataSource datasource)
            throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(datasource);
        bean.setMapperLocations(
                new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/two/*.xml"));
        return bean.getObject();
    }
    
    @Bean("twoSqlSessionTemplate")
    public SqlSessionTemplate twosqlsessiontemplate(
            @Qualifier("twoSqlSessionFactory") SqlSessionFactory sessionfactory) {
        return new SqlSessionTemplate(sessionfactory);
    }
}

三、實(shí)體類

兩個(gè)數(shù)據(jù)源公用一個(gè)實(shí)體類

public class BootUser {
    private String id;
    private String name;
    private String detail;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }
}

四、新增mapper.xml文件

數(shù)據(jù)源一:在src/main/resources/mapper/one(不存在文件加新建)創(chuàng)建BootUserOneMapper.xml文件,具體配置信息如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yoodb.study.demo03.mapper.one.BootUserOneMapper" >
    <resultMap id="BaseResultMap" type="com.yoodb.study.demo03.bean.BootUser" >
        <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="user_name" property="name" jdbcType="VARCHAR" />
        <result column="detail" property="detail" jdbcType="VARCHAR" />
    </resultMap>

    <select id="selectAll" resultMap="BaseResultMap">
    select
         id, user_name, detail
    from boot_user order by detail asc
    </select>
</mapper>

數(shù)據(jù)源二:在src/main/resources/mapper/two(不存在文件加新建)創(chuàng)建BootUserTwoMapper.xml文件,具體配置信息如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yoodb.study.demo03.mapper.two.BootUserTwoMapper" >
    <resultMap id="BaseResultMap" type="com.yoodb.study.demo03.bean.BootUser" >
        <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="user_name" property="name" jdbcType="VARCHAR" />
        <result column="detail" property="detail" jdbcType="VARCHAR" />
    </resultMap>

    <select id="selectAll" resultMap="BaseResultMap">
    select
         id, user_name, detail
    from boot_user order by detail asc
    </select>
</mapper>

五、新增接口文件

數(shù)據(jù)源一:mapper接口類文件,具體代碼如下:

public interface BootUserOneMapper {
    List<BootUser> selectAll();
}

數(shù)據(jù)源二:mapper接口類文件,具體代碼如下:

public interface BootUserTwoMapper {
    List<BootUser> selectAll();
}

六、創(chuàng)建service/controller

@Service
public class BootUserService {
    
    @Autowired
    private BootUserOneMapper onemapper;

    @Autowired
    private BootUserTwoMapper twomapper;

    public List<BootUser> getUsers(){
        List<BootUser> listone = onemapper.selectAll();
        List<BootUser> listtwo = twomapper.selectAll();
        listone.addAll(listtwo);
        return listone;
    }
}
@RestController
@RequestMapping("/myt")
public class BootUserController {
    @Autowired
    private BootUserService service;

    @RequestMapping("/getUsers")
    public List<BootUser> getUsers() {
        List<BootUser> list = service.getUsers();
        return list;
    }

}

項(xiàng)目啟動(dòng)過(guò)程中控制臺(tái)報(bào)錯(cuò),錯(cuò)誤信息如下:

解決方法:就是在pom.xml文件中增加如下配置信息:

<resources>
	<resource>
		<!-- 指定resources插件處理哪個(gè)目錄下的資源文件 -->
		<directory>src/main/resources</directory>
		<includes>
			<include>**/**</include>
		</includes>
	</resource>
</resources>

http://localhost:8080/myt/getUsers

解決方案

將application.properties文件中spring.datasource…url和spring.datasource…driverClassName分別替換成spring.datasource…jdbc-url和spring.datasource…driver-class-name。

Spring Boot源碼分析:

1)spring.datasource..url替換成spring.datasource..jdbcUrl也沒(méi)有任何問(wèn)題。

源碼org.springframework.boot.jdbc包中DatabaseDriver.class文件反編譯后,發(fā)現(xiàn)url參數(shù)必須以“jdbc”開(kāi)始,具體源碼如下:

public static DatabaseDriver fromJdbcUrl(String url) {
	if (StringUtils.hasLength(url)) {
		Assert.isTrue(url.startsWith("jdbc"), "URL must start with 'jdbc'");
		String urlWithoutPrefix = url.substring("jdbc".length()).toLowerCase(Locale.ENGLISH);
		DatabaseDriver[] var2 = values();
		int var3 = var2.length;

		for(int var4 = 0; var4 < var3; ++var4) {
			DatabaseDriver driver = var2[var4];
			Iterator var6 = driver.getUrlPrefixes().iterator();

			while(var6.hasNext()) {
				String urlPrefix = (String)var6.next();
				String prefix = ":" + urlPrefix + ":";
				if (driver != UNKNOWN && urlWithoutPrefix.startsWith(prefix)) {
					return driver;
				}
			}
		}
	}

	return UNKNOWN;
}

2)spring.datasource.*.driverClassName不替換也沒(méi)有影響。

源碼org.springframework.boot.autoconfigure.jdbc包中ConfigurationProperties.class文件反編譯后,發(fā)現(xiàn)屬性即為driverClassName字段,具體源碼如下:

public String determineDriverClassName() {
	if (StringUtils.hasText(this.driverClassName)) {
		Assert.state(this.driverClassIsLoadable(), () -> {
			return "Cannot load driver class: " + this.driverClassName;
		});
		return this.driverClassName;
	} else {
	...

修改application.properties文件配置,參考信息如下:

spring.datasource.one.jdbc-url=jdbc:mysql://123.57.47.154:3306/springboot1
spring.datasource.one.username=root
spring.datasource.one.password=wangyoodb
spring.datasource.one.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.two.jdbc-url=jdbc:mysql://123.57.47.154:3306/springboot2
spring.datasource.two.username=root
spring.datasource.two.password=wangyoodb
spring.datasource.two.driver-class-name=com.mysql.cj.jdbc.Driver

使用JdbcTemplate

@RestController
@RequestMapping("/jte")
public class JdbcTemplateController {
    @Autowired
    private JdbcTemplate oneSqlSessionTemplate;

    @Autowired
    private JdbcTemplate twoSqlSessionTemplate;

    @RequestMapping("/getOneUsers")
    public List<Map<String, Object>> getOneUsers(){
        String sql = "select * from boot_user";
        List<Map<String, Object>> list =  twoSqlSessionTemplate.queryForList(sql);
        for (Map<String, Object> map : list) {
            Set<Entry<String, Object>> entries = map.entrySet( );
            if(entries != null) {
                Iterator<Entry<String, Object>> iterator = entries.iterator( );
                while(iterator.hasNext( )) {
                    Entry<String, Object> entry =(Entry<String, Object>) iterator.next( );
                    Object key = entry.getKey( );
                    Object value = entry.getValue();
                    System.out.println(key+":"+value);
                }
            }
        }
        return list;
    }

    @RequestMapping("/getTwoUsers")
    public List<BootUser> getTwoUsers() {
        List<BootUser> list = twoSqlSessionTemplate.query("select id,user_name " +
                "name,detail from boot_user", new BeanPropertyRowMapper<>(BootUser.class));
        return list;
    }
    
}

多數(shù)據(jù)源配置文件、多數(shù)據(jù)源類文件、實(shí)體類文件、controller層創(chuàng)建完成后,目錄如圖:

項(xiàng)目啟動(dòng)后訪問(wèn)多數(shù)據(jù)源一請(qǐng)求地址:

http://localhost:8080/jte/getOneUsers

通過(guò)瀏覽器訪問(wèn)輸出如下信息:

[{"id":1,"user_name":"素文宅博客","password":"e10adc3949ba59abbe56e057f20f883e","role_name":"素文宅博客","detail":"歡迎關(guān)注“Java精選”微信公眾號(hào),專注程序員推送一些Java開(kāi)發(fā)知識(shí),包括基礎(chǔ)知識(shí)、各大流行框架(Mybatis、Spring、Spring Boot等)、大數(shù)據(jù)技術(shù)(Storm、Hadoop、MapReduce、Spark等)、數(shù)據(jù)庫(kù)(Mysql、Oracle、NoSQL等)、算法與數(shù)據(jù)結(jié)構(gòu)、面試專題、面試技巧經(jīng)驗(yàn)、職業(yè)規(guī)劃以及優(yōu)質(zhì)開(kāi)源項(xiàng)目等。"}]

項(xiàng)目啟動(dòng)后訪問(wèn)多數(shù)據(jù)源二請(qǐng)求地址:

http://localhost:8080/jte/getTwoUsers

通過(guò)瀏覽器訪問(wèn)輸出如下信息:

[{"id":"1","name":"素文宅博客","detail":"歡迎關(guān)注“Java精選”微信公眾號(hào),專注程序員推送一些Java開(kāi)發(fā)知識(shí),包括基礎(chǔ)知識(shí)、各大流行框架(Mybatis、Spring、Spring Boot等)、大數(shù)據(jù)技術(shù)(Storm、Hadoop、MapReduce、Spark等)、數(shù)據(jù)庫(kù)(Mysql、Oracle、NoSQL等)、算法與數(shù)據(jù)結(jié)構(gòu)、面試專題、面試技巧經(jīng)驗(yàn)、職業(yè)規(guī)劃以及優(yōu)質(zhì)開(kāi)源項(xiàng)目等。"}]

Spring容器中JdbcTemplate提供了兩種注入方式,一種是使用@Resource注解,直接通過(guò)byName的方式注入進(jìn)來(lái),另外一種就是@Autowired注解加上@Qualifier注解,兩者聯(lián)合起來(lái),實(shí)際上也是byName。

將JdbcTemplate注入成功后,oneSqlSessionTemplate和twoSqlSessionTemplate此時(shí)就代表操作不同的數(shù)據(jù)源,使用不同的JdbcTemplate操作不同的數(shù)據(jù)源,實(shí)現(xiàn)了多數(shù)據(jù)源配置。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 揭開(kāi)SQL中NULL的神秘面紗

    揭開(kāi)SQL中NULL的神秘面紗

    表的字段默認(rèn)允許存放NULL值,這意味著,您在插入記錄或者更新記錄時(shí),可以不為該字段指定值,此時(shí)該字段將存儲(chǔ)NULL值,這篇文章將揭開(kāi)SQL中NULL的神秘面紗。這個(gè)問(wèn)題可能困擾著很多初級(jí)開(kāi)發(fā)者
    2023-01-01
  • Mysql中mysql.user用戶表詳解

    Mysql中mysql.user用戶表詳解

    在本篇文章里小編給大家分享了關(guān)于Mysql中mysql.user用戶表的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2019-09-09
  • MySQL連接異常:Communications link failure問(wèn)題及解決

    MySQL連接異常:Communications link failure問(wèn)題及解決

    這篇文章主要介紹了MySQL連接異常:Communications link failure問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 淺談Mysql主鍵索引與非主鍵索引區(qū)別

    淺談Mysql主鍵索引與非主鍵索引區(qū)別

    本文主要介紹了ysql主鍵索引與非主鍵索引區(qū)別,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • 解決MySQL添加新用戶-ERROR?1045?(28000)的問(wèn)題

    解決MySQL添加新用戶-ERROR?1045?(28000)的問(wèn)題

    這篇文章主要介紹了MySQL添加新用戶-ERROR?1045?(28000)解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • MySQL字段默認(rèn)值為NULL時(shí)的避坑指南

    MySQL字段默認(rèn)值為NULL時(shí)的避坑指南

    在 MySQL 中,字段默認(rèn)值為 NULL 是一種常見(jiàn)設(shè)計(jì),但如果你不小心,NULL 會(huì)成為你系統(tǒng)中最隱蔽的問(wèn)題源頭之一,本文將通過(guò)真實(shí) SQL 示例,帶你了解默認(rèn)值為 NULL 時(shí)常見(jiàn)的“坑”,需要的朋友可以參考下
    2025-05-05
  • Mysql 數(shù)據(jù)庫(kù)死鎖過(guò)程分析(select for update)

    Mysql 數(shù)據(jù)庫(kù)死鎖過(guò)程分析(select for update)

    最近有項(xiàng)目需求,需要保證多臺(tái)機(jī)器不拿到相同的數(shù)據(jù),后來(lái)發(fā)現(xiàn)Mysql查詢語(yǔ)句使用select.. for update經(jīng)常導(dǎo)致數(shù)據(jù)庫(kù)死鎖問(wèn)題,下面小編給大家介紹mysql 數(shù)據(jù)庫(kù)死鎖過(guò)程分析(select for update),對(duì)mysql數(shù)據(jù)庫(kù)死鎖問(wèn)題感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • mysql 數(shù)據(jù)插入優(yōu)化方法

    mysql 數(shù)據(jù)插入優(yōu)化方法

    當(dāng)一個(gè)線程對(duì)一個(gè)表執(zhí)行一個(gè)DELAYED語(yǔ)句時(shí),如果不存在這樣的處理程序,一個(gè)處理器線程被創(chuàng)建以處理對(duì)于該表的所有DELAYED語(yǔ)句。
    2010-12-12
  • mysql server 5.5連接不上的解決方法

    mysql server 5.5連接不上的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql server 5.5連接不上的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Mysql 8 新特性 window functions 的作用

    Mysql 8 新特性 window functions 的作用

    MySQL是眾多網(wǎng)站技術(shù)棧中的標(biāo)準(zhǔn)配置,是廣受歡迎的開(kāi)源數(shù)據(jù)庫(kù),已經(jīng)推出了8.0的第一個(gè)候選發(fā)行版本。接下來(lái)通過(guò)本文給大家分享Mysql 8 新特性 window functions 的作用,需要的朋友參考下吧
    2017-11-11

最新評(píng)論

马公市| 乌什县| 宜兰市| 大宁县| 古浪县| 海盐县| 佛坪县| 乡宁县| 阳高县| 彩票| 堆龙德庆县| 西青区| 洪泽县| 建德市| 拜泉县| 交口县| 和田市| 渭源县| 班戈县| 清苑县| 神池县| 甘谷县| 玉环县| 肇州县| 阿合奇县| 姚安县| 莱芜市| 东丰县| 安阳市| 沽源县| 东兴市| 东港市| 仁布县| 长乐市| 西乡县| 鄂托克前旗| 浙江省| 万山特区| 宁化县| 屯昌县| 青龙|