標籤: 如何寫文案

  • Spring Boot 2.x基礎教程:Spring Data JPA的多數據源配置

    上一篇我們介紹了在使用JdbcTemplate來做數據訪問時候的多數據源配置實現。接下來我們繼續學習如何在使用Spring Data JPA的時候,完成多數據源的配置和使用。

    添加多數據源的配置

    先在Spring Boot的配置文件application.properties中設置兩個你要鏈接的數據庫配置,比如這樣:

    spring.datasource.primary.jdbc-url=jdbc:mysql://localhost:3306/test1
    spring.datasource.primary.username=root
    spring.datasource.primary.password=123456
    spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver
    
    spring.datasource.secondary.jdbc-url=jdbc:mysql://localhost:3306/test2
    spring.datasource.secondary.username=root
    spring.datasource.secondary.password=123456
    spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver
    
    # 日誌打印執行的SQL
    spring.jpa.show-sql=true
    # Hibernate的DDL策略
    spring.jpa.hibernate.ddl-auto=create-drop
    

    這裏除了JPA自身相關的配置之外,與JdbcTemplate配置時候的數據源配置完全是一致的

    說明與注意

    1. 多數據源配置的時候,與單數據源不同點在於spring.datasource之後多設置一個數據源名稱primarysecondary來區分不同的數據源配置,這個前綴將在後續初始化數據源的時候用到。
    2. 數據源連接配置2.x和1.x的配置項是有區別的:2.x使用spring.datasource.secondary.jdbc-url,而1.x版本使用spring.datasource.secondary.url。如果你在配置的時候發生了這個報錯java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.,那麼就是這個配置項的問題。

    初始化數據源與JPA配置

    完成多數據源的配置信息之後,就來創建個配置類來加載這些配置信息,初始化數據源,以及初始化每個數據源要用的JdbcTemplate。

    由於JPA的配置要比JdbcTemplate的負責很多,所以我們將配置拆分一下來處理:

    1. 單獨建一個多數據源的配置類,比如下面這樣:
    @Configuration
    public class DataSourceConfiguration {
    
        @Primary
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.primary")
        public DataSource primaryDataSource() {
            return DataSourceBuilder.create().build();
        }
    
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.secondary")
        public DataSource secondaryDataSource() {
            return DataSourceBuilder.create().build();
        }
    
    }
    

    可以看到內容跟JdbcTemplate時候是一模一樣的。通過@ConfigurationProperties可以知道這兩個數據源分別加載了spring.datasource.primary.*spring.datasource.secondary.*的配置。@Primary註解指定了主數據源,就是當我們不特別指定哪個數據源的時候,就會使用這個Bean真正差異部分在下面的JPA配置上。

    1. 分別創建兩個數據源的JPA配置。

    Primary數據源的JPA配置:

    @Configuration
    @EnableTransactionManagement
    @EnableJpaRepositories(
            entityManagerFactoryRef="entityManagerFactoryPrimary",
            transactionManagerRef="transactionManagerPrimary",
            basePackages= { "com.didispace.chapter38.p" }) //設置Repository所在位置
    public class PrimaryConfig {
    
        @Autowired
        @Qualifier("primaryDataSource")
        private DataSource primaryDataSource;
    
        @Autowired
        private JpaProperties jpaProperties;
        @Autowired
        private HibernateProperties hibernateProperties;
    
        private Map<String, Object> getVendorProperties() {
            return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
        }
    
        @Primary
        @Bean(name = "entityManagerPrimary")
        public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
            return entityManagerFactoryPrimary(builder).getObject().createEntityManager();
        }
    
        @Primary
        @Bean(name = "entityManagerFactoryPrimary")
        public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) {
            return builder
                    .dataSource(primaryDataSource)
                    .packages("com.didispace.chapter38.p") //設置實體類所在位置
                    .persistenceUnit("primaryPersistenceUnit")
                    .properties(getVendorProperties())
                    .build();
        }
    
        @Primary
        @Bean(name = "transactionManagerPrimary")
        public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {
            return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());
        }
    
    }
    

    Secondary數據源的JPA配置:

    @Configuration
    @EnableTransactionManagement
    @EnableJpaRepositories(
            entityManagerFactoryRef="entityManagerFactorySecondary",
            transactionManagerRef="transactionManagerSecondary",
            basePackages= { "com.didispace.chapter38.s" }) //設置Repository所在位置
    public class SecondaryConfig {
    
        @Autowired
        @Qualifier("secondaryDataSource")
        private DataSource secondaryDataSource;
    
        @Autowired
        private JpaProperties jpaProperties;
        @Autowired
        private HibernateProperties hibernateProperties;
    
        private Map<String, Object> getVendorProperties() {
            return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
        }
    
        @Bean(name = "entityManagerSecondary")
        public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
            return entityManagerFactorySecondary(builder).getObject().createEntityManager();
        }
    
        @Bean(name = "entityManagerFactorySecondary")
        public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) {
            return builder
                    .dataSource(secondaryDataSource)
                    .packages("com.didispace.chapter38.s") //設置實體類所在位置
                    .persistenceUnit("secondaryPersistenceUnit")
                    .properties(getVendorProperties())
                    .build();
        }
    
        @Bean(name = "transactionManagerSecondary")
        PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) {
            return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject());
        }
    
    }
    

    說明與注意

    • 在使用JPA的時候,需要為不同的數據源創建不同的package來存放對應的Entity和Repository,以便於配置類的分區掃描
    • 類名上的註解@EnableJpaRepositories中指定Repository的所在位置
    • LocalContainerEntityManagerFactoryBean創建的時候,指定Entity所在的位置
    • 其他主要注意在互相注入時候,不同數據源不同配置的命名,基本就沒有什麼大問題了

    測試一下

    完成了上面之後,我們就可以寫個測試類來嘗試一下上面的多數據源配置是否正確了,比如下面這樣:

    @Slf4j
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class Chapter38ApplicationTests {
    
        @Autowired
        private UserRepository userRepository;
        @Autowired
        private MessageRepository messageRepository;
    
        @Test
        public void test() throws Exception {
            userRepository.save(new User("aaa", 10));
            userRepository.save(new User("bbb", 20));
            userRepository.save(new User("ccc", 30));
            userRepository.save(new User("ddd", 40));
            userRepository.save(new User("eee", 50));
    
            Assert.assertEquals(5, userRepository.findAll().size());
    
            messageRepository.save(new Message("o1", "aaaaaaaaaa"));
            messageRepository.save(new Message("o2", "bbbbbbbbbb"));
            messageRepository.save(new Message("o3", "cccccccccc"));
    
            Assert.assertEquals(3, messageRepository.findAll().size());
        }
    
    }
    

    說明與注意

    • 測試驗證的邏輯很簡單,就是通過不同的Repository往不同的數據源插入數據,然後查詢一下總數是否是對的
    • 這裏省略了Entity和Repository的細節,讀者可以在下方代碼示例中下載完整例子對照查看

    代碼示例

    本文的相關例子可以查看下面倉庫中的chapter3-8目錄:

    • Github:https://github.com/dyc87112/SpringBoot-Learning/
    • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

    如果您覺得本文不錯,歡迎Star支持,您的關注是我堅持的動力!

    相關閱讀

    • Spring Boot 1.x基礎教程:多數據源配置

    本文首發:Spring Boot 2.x基礎教程:Spring Data JPA的多數據源配置,轉載請註明出處。
    歡迎關注我的公眾號:程序猿DD,獲得獨家整理的學習資源和日常乾貨推送。
    如果您對我的其他專題內容感興趣,直達我的個人博客:didispace.com。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※別再煩惱如何寫文案,掌握八大原則!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案

    FB行銷專家,教你從零開始的技巧

  • 手把手教你基於SqlSugar4編寫一個可視化代碼生成器(生成實體,以SqlServer為例,文末附源碼)

    手把手教你基於SqlSugar4編寫一個可視化代碼生成器(生成實體,以SqlServer為例,文末附源碼)

      在開發過程中免不了創建實體類,字段少的表可以手動編寫,但是字段多還用手動創建的話不免有些浪費時間,假如一張表有100多個字段,手寫有些不現實。

    這時我們會藉助一些工具,如:動軟代碼生成器、各種ORM框架自帶的代碼生成器等等,都可以使用。

    我們現在就基於SqlSugar(ORM框架)自己動手製造一個輪子,以SqlServer為例。我們先看一下成品效果,

     

    使用流程:

      配置好數據庫鏈接,點擊【鏈接數據庫】獲取指定服務器上的數據庫名,點擊數據庫名,動態獲取數據庫下面的所有表,

    點擊數據表,如果生成過了的會自動獲取生成的實體,如果沒有生成過,點擊【生成實體】自動生成显示,直接複製即可使用。

    注:server=xxx.xxx.x.xxx這裏如果是本地沒有配置的話直接server=.即可。

     

     

     

     

    開發環境:

    編譯器:Visual Studio 2017

    運行環境:windows7 x64

    數據庫:SqlServer2012

     

    代碼實現步驟:

    一、創建一個ASP.NET Web應用,命名為GenerateEntity

     

     

     

     

     

     

    二、應用SqlSugar動態鏈接庫

     

     

     

    三、編寫代碼

    這裏分為前端和後端,前端頁面展示,後端後台邏輯(注:由於我們是代碼展示,所以就不搞三層架構、工廠模式這些,直接在控制器中完成,有需要的同學可以根據項目需求進行更改

    內部實現邏輯:

    • 在頁面上配置數據庫鏈接,點擊【鏈接數據庫】按鈕獲取指定數據庫的所有數據庫名显示在左邊;
    • 點擊左邊的數據庫名稱,動態獲取指定數據庫下面所有的表显示出來;
    • 點擊表名,生成過的就显示生成的實體,沒有的則點擊【生成實體】按鈕生成(支持生成單表和數據庫表全部生成);

    這裏我直接貼出代碼,直接拷貝即可使用:

    前端html頁面

    @{
        ViewBag.Title = "Home Page";
    }
    
    <script src="~/Scripts/jquery-3.3.1.js"></script>
    
    <div style="margin-top:10px;font-family:'Microsoft YaHei';font-size:18px; ">
        <div style="height:100px;width:100%;border:1px solid gray;padding:10px">
            <div>
                <span>鏈接數據庫:</span>
                <input style="width:800px;max-width:800px;" id="Link" value="server=xxx.xxx.x.xxx;uid=sa;pwd=xxx" />
                <a href="javascript:void(0)" onclick="LinkServer()">鏈接數據庫</a>
            </div>
            <div style="margin-top:10px">
                <span>數據庫名:</span>
                <input style="color:red;font-weight:600" id="ServerName" />
    
                <span>表名:</span>
                <input style="color:red;font-weight:600" id="TableName" />
    
                <span>生成類型:</span>
                <select id="type">
                    <option value="0">生成單個表</option>
                    <option value="1">生成所有表</option>
                </select>
                <a  href="javascript:void(0)" onclick="GenerateEntity()" style="margin-left:20px;font-weight:600;">生成實體</a>
                <br />
    
            </div>
        </div>
        <div style="height:720px;width:100%;">
            <div style="height:100%;width:40%;float:left; border:1px solid gray;font-size:20px">
    
                <div id="leftserver" style="float:left;border:1px solid gray;height:100%;width:40%;padding:10px;overflow: auto;">
    
                </div>
                <div id="lefttable" style="float:left;border:1px solid gray;height:100%;width:60%;padding:10px;overflow: auto;">
    
                </div>
            </div>
            <div  style="height:100%;width:60%;float:left;border:1px solid gray;overflow: auto;">
                <textarea style="width:100%;height:100%;max-width:10000px" id="righttable"></textarea>
            </div>
        </div>
    </div>
    
    <script type="text/javascript">
    
        //鏈接數據庫
        function LinkServer() {
            $.ajax({
                url: "/Home/LinkServer",
                data: { Link: $("#Link").val() },
                type: "POST",
                async: false,
                dataType: "json",
                success: function (data) {
                    if (data.res) {
                        if (data.info != "") {
                            $("#leftserver").html("");
                            var leftserver = "<span>數據庫名</span><hr />";
                            var info = eval("(" + data.info + ")");
                            for (var i = 0; i < info.length; i++) {
                                leftserver += "<a onclick=\"leftserver('" + info[i].Name + "')\">" + info[i].Name + "</a><br />";
                            }
    
                            $("#leftserver").html(leftserver);
                        }
                    }
                    else {
                        alert(data.msg);
                    }
                }
            });
        }
    
        //查詢指定數據庫的表
        function leftserver(Name) {
            $("#ServerName").val(Name)
            $.ajax({
                url: "/Home/GetTable",
                data: { Link: $("#Link").val(), Name: Name },
                type: "POST",
                async: false,
                dataType: "json",
                success: function (data) {
                    if (data.res) {
                        if (data.info != "") {
                            $("#lefttable").html("");
                            var lefttable = "<span>表名</span><hr />";
                            var info = eval("(" + data.info + ")");
                            for (var i = 0; i < info.length; i++) {
                                lefttable += "<a onclick=\"lefttable('" + info[i].Name + "')\">" + info[i].Name + "</a><br />";
                            }
    
                            $("#lefttable").html(lefttable);
                        }
                    }
                    else {
                        alert(data.msg);
                    }
                }
            });
        }
    
        //查詢指定數據庫的表
        function lefttable(Name) {
            $("#TableName").val(Name);
            $.ajax({
                url: "/Home/GetGenerateEntity",
                data: { TableName: Name },
                type: "POST",
                async: false,
                dataType: "json",
                success: function (data) {
                    if (data.res) {
                        document.getElementById("righttable").innerHTML = data.info;
                    }
                    else {
                        alert(data.msg);
                    }
                }
            });
        }
    
        //生成實體
        function GenerateEntity() {
    
            $.ajax({
                url: "/Home/GenerateEntity",
                data: {
                    Link: $("#Link").val(),
                    Name: $("#ServerName").val(),
                    TableName: $("#TableName").val(),
                    type: $("#type").val()
                },
                type: "POST",
                async: false,
                dataType: "json",
                success: function (data) {
                    if (data.res) {
                        document.getElementById("righttable").innerHTML = data.info;
                    }
                    else {
                        alert(data.msg);
                    }
                }
            });
        }
    
    </script>

     

    後端控制器數據

    using SqlSugar;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;
    
    namespace GenerateEntity.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
    
            public ActionResult About()
            {
                ViewBag.Message = "Your application description page.";
    
                return View();
            }
    
            public ActionResult Contact()
            {
                ViewBag.Message = "Your contact page.";
    
                return View();
            }
    
    
         
            //鏈接數據庫
            public JsonResult LinkServer(string Link)
            {
                ResultInfo result = new ResultInfo();
                try
                {
                    //配置數據庫連接
                    SqlSugarClient db = new SqlSugarClient(
                                        new ConnectionConfig()
                                        {
                                            ConnectionString = ""+ Link + ";database=master",
                                            DbType = DbType.SqlServer,//設置數據庫類型
                                        IsAutoCloseConnection = true,//自動釋放數據務,如果存在事務,在事務結束后釋放
                                        InitKeyType = InitKeyType.Attribute //從實體特性中讀取主鍵自增列信息
                                    });
                    string sql = @"SELECT top 100000 Name FROM Master..SysDatabases ORDER BY Name";  //查詢所有鏈接的所有數據庫名
                    var strList = db.SqlQueryable<databaseName>(sql).ToList();
                    result.info = Newtonsoft.Json.JsonConvert.SerializeObject(strList);
                    result.res = true;
                    result.msg = "鏈接成功!";
                }
                catch (Exception ex)
                {
                    result.msg = ex.Message;
                }
    
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    
            //根據數據庫名查詢所有表
            public JsonResult GetTable(string Link,string Name)
            {
    
                ResultInfo result = new ResultInfo();
                try
                {
                    //配置數據庫連接
                    SqlSugarClient db = new SqlSugarClient(
                                        new ConnectionConfig()
                                        {
                                            ConnectionString = "" + Link + ";database="+ Name + "",
                                            DbType = DbType.SqlServer,//設置數據庫類型
                                            IsAutoCloseConnection = true,//自動釋放數據務,如果存在事務,在事務結束后釋放
                                            InitKeyType = InitKeyType.Attribute //從實體特性中讀取主鍵自增列信息
                                        });
    
                    string sql = @"SELECT top 10000 Name FROM SYSOBJECTS WHERE TYPE='U' ORDER BY Name";  //查詢所有鏈接的所有數據庫名
                    var strList = db.SqlQueryable<databaseName>(sql).ToList();
                    result.info = Newtonsoft.Json.JsonConvert.SerializeObject(strList);
                    result.res = true;
                    result.msg = "查詢成功!";
                }
                catch (Exception ex)
                {
                    result.msg = ex.Message;
                }
    
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    
            //生成實體
            public JsonResult GenerateEntity(string Link, string Name,string TableName,string type)
            {
    
                ResultInfo result = new ResultInfo();
                try
                {
                    //配置數據庫連接
                    SqlSugarClient db = new SqlSugarClient(
                                        new ConnectionConfig()
                                        {
                                            ConnectionString = "" + Link + ";database=" + Name + "",
                                            DbType = DbType.SqlServer,//設置數據庫類型
                                            IsAutoCloseConnection = true,//自動釋放數據務,如果存在事務,在事務結束后釋放
                                            InitKeyType = InitKeyType.Attribute //從實體特性中讀取主鍵自增列信息
                                        });
    
                    string path = "C:\\Demo\\2";
    
                    if (type == "0")
                    {
                        path = "C:\\Demo\\2";
                        db.DbFirst.Where(TableName).CreateClassFile(path);
                        result.info = System.IO.File.ReadAllText(@"" + path + "\\" + TableName + ".cs" + "", Encoding.UTF8);
                    }
                    else if (type == "1")
                    {
                        path = "C:\\Demo\\3";
                        db.DbFirst.IsCreateAttribute().CreateClassFile(path);
                        result.info = "";
                    }
    
                    
                    
                    result.res = true;
                    result.msg = "生成成功!";
                }
                catch (Exception ex)
                {
                    result.msg = ex.Message;
                }
    
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    
            //生成全部表時查看
            public JsonResult GetGenerateEntity(string TableName)
            {
    
                ResultInfo result = new ResultInfo();
                try
                {
                    string path = "C:\\Demo\\3";
                    result.info = System.IO.File.ReadAllText(@"" + path + "\\" + TableName + ".cs" + "", Encoding.UTF8);
                    result.res = true;
                    result.msg = "查詢成功!";
                }
                catch (Exception ex)
                {
                    result.msg = ex.Message;
                    try
                    {
                        if (result.msg.Contains("未能找到文件"))
                        {
                           string path = "C:\\Demo\\2";
                            result.info = System.IO.File.ReadAllText(@"" + path + "\\" + TableName + ".cs" + "", Encoding.UTF8);
                            result.res = true;
                            result.msg = "查詢成功!";
                        }
                    }
                    catch (Exception)
                    {
                        result.msg = ex.Message;
                    }
                }
    
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    
            //數據庫名
            public class databaseName
            {
                public string Name { get; set; }
            }
    
            //封裝返回信息數據
            public class ResultInfo
            {
                public ResultInfo()
                {
                    res = false;
                    startcode = 449;
                    info = "";
                }
                public bool res { get; set; }  //返回狀態(true or false)
                public string msg { get; set; }  //返回信息
                public int startcode { get; set; }  //返回http的狀態碼
                public string info { get; set; }  //返回的結果(res為true時返回結果集,res為false時返回錯誤提示)
            }
    
        }
    }

     

     

     

    這樣一套可視化代碼生成器就出來了,我們把他發布到IIS上面,然後設置為瀏覽器標籤(收藏),這樣就可以快捷使用了。

    我們運行一下看看,是不是感覺很方便呀!

     

     

     

    歡迎關注訂閱我的微信公眾平台【熊澤有話說】,更多好玩易學知識等你來取
    作者:熊澤-學習中的苦與樂
    公眾號:熊澤有話說
    出處: https://www.cnblogs.com/xiongze520/p/13181241.html
    創作不易,版權歸作者和博客園共有,轉載或者部分轉載、摘錄,請在文章明顯位置註明作者和原文鏈接。  

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※別再煩惱如何寫文案,掌握八大原則!

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※超省錢租車方案

    ※教你寫出一流的銷售文案?

    網頁設計最專業,超強功能平台可客製化

  • 特斯拉向企業客戶推出電動車租賃計劃 以提振需求

    特斯拉(Tesla)於8日推出面向企業客戶的S型豪華跑車租賃計劃,以爭取更多的美國國內客戶。消費者可分期支付車款,在租期截止後可選擇支付餘款並擁有汽車,也可選擇將汽車歸還。有意願者在網上僅需5分鐘就可提交一份租賃申請。

    此舉正逢S型豪華跑車在美國的銷量開始放慢增長。今年第一季度,S型車在美國市場售出4700輛,比去年同期僅增長1%。特斯拉公司表示,相比去年向個人客戶推出的一種功能相當於租賃計劃的推銷模式,面向中小企業的租賃計劃更為直接透明,租賃費可在企業納稅時扣抵。

    S型全電動跑車是特斯拉的主打產品,去年登上美國最暢銷豪華車榜單。但市場分析人士認為,美國消費者對該系列汽車的興趣開始消退,需求進入穩定階段,因此開拓國際市場對特斯拉來說尤為重要。他們預計,中國消費者早期的強勁需求可能是提升S型車銷量的最大因素。

    特斯拉電池工廠計畫面臨危機

    另外,特斯拉早前宣佈將耗資數十億美元建造全球最大的電池工廠,以求大幅降低電動車成本,幫助特斯拉進入中端市場。不過,特斯拉新聞發言人西恩曾表示,特斯拉電動車電池的兩項重要原料資源,現在均面臨缺乏危機。

    石墨是特斯拉電動車電池最重要的原料之一,特斯拉目前使用的石墨原料絕大部分來自日本和歐洲市場,且都是化學合成石墨,而並非天然開採的石墨。美國稀有金屬諮詢分析公司Technology Metal預計,未來需要新增6個石墨礦才能夠滿足不斷增長的電池生產對原材料的需求,石墨的價格則會繼續上漲。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※別再煩惱如何寫文案,掌握八大原則!

  • 看好電動車需求 昭和電工SiC晶圓產能欲擴增10倍

    據日經新聞12日報導,由於看好電動車(EV)及油電混合車(HV)等環保車種今後的需求會持續擴大,昭和電工(Showa Denko K.K.)計畫增產使用於環保車的高效能次世代電源控制晶片材料「碳化矽(SiC)晶圓」,目標為在2020年結束前將SiC晶圓月產能擴增至2.5萬片、將達現行的10倍水準。

    和現行使用於半導體元件製造的矽晶圓相比,SiC晶圓可將通電時的電力損耗量縮減6-7成。報導稱,預估2020年全球SiC晶圓市場規模將增至300億日圓、將達現行的7倍。

    昭和電工目前是透過秩父事業所生產SiC晶圓,昭和電工計畫自2015年起階段性投下約50億日圓資金、擴增秩父事業所SiC晶圓生產設備。

    報導指出,目前昭和電工SiC晶圓全球市佔率位居第2位,上述增產措施完成后,預估昭和電工SiC晶圓全球市佔率可較現行提高1成至4成,且SiC晶圓銷售額也可望擴增至現行的10倍、達一百數十億日圓的水準。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※別再煩惱如何寫文案,掌握八大原則!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案

  • 寶馬i3電動汽車供不應求 將大幅提升每日產量

    寶馬汽車集團生產業務負責人哈羅德-克魯格(Harald Krueger)週二表示,美國將成為i3電動汽車的最大市場,該公司已將i3的生產速度提高至每日100輛,以為本月晚些時候該車型在美國市場的推出做準備。

    其另一位發言人表示,該公司在德國萊比錫‎的工廠此前每天生產約70輛i3電動汽車。迄今為止,寶馬已生產了5000輛i3電動車,獲得的訂單總量去年10月份就已超過1.1萬輛。

    寶馬i3是電動汽車品牌i系列的第一款車型,第二款為寶馬i8插電式混合動力跑車。2011年寶馬發佈i品牌時,寶馬i3和i8原型亮相。寶馬i3量產後,2013年11月份在歐洲率先上市,本月將登陸美國,起售價41,350美元。

    2020年寶馬電動車年產量或超10萬輛

    今年3月19日,寶馬CEO諾伯特•雷瑟夫(Norbert Reithofer)在年度財務會議上表示,到2020年寶馬i3和i8等i系列每年總產量或將達到100,000輛以上。

    雷瑟夫表示,由於電動車和插電式混合動力車能夠説明公司產品陣容達到歐洲嚴苛的二氧化碳排放新標準,因此將在2018年之前大幅擴產i系列電動車,到2020年「鑒於收緊的排放法規,我們將被迫每年生產六位數的電動車以達標。」

    寶馬計畫到2020年將其歐洲新車平均二氧化碳排放水準從2013年的133克/千米大幅削減至105克/千米,而1995年時的水準為210克/千米。

    根據歐盟設立的排放新標準,到2021年新車平均排放水準為95克/千米,目前則為130克/千米。由於德國方面反對,歐盟將時間節點從原先的2020年推遲一年。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※別再煩惱如何寫文案,掌握八大原則!

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※超省錢租車方案

    ※教你寫出一流的銷售文案?

  • 第四屆中國國際新能源汽車論壇2014

    第四屆中國國際新能源汽車論壇2014

    北汽、上汽、奧迪、通用、三菱、奇瑞捷豹路虎、寶馬、標緻雪鐵龍、日產、精進電動、宇通、江蘇常隆、寧波南車、天津力神、北京新能源汽車促進中心、國務院發展研究中心等邀您共赴盛會

    第四屆中國國際新能源汽車論壇2014將攜手國家電網北京電力科學研究院,於2014年6月25日-26日在中國北京共同為您呈現新能源汽車行業盛宴。前三屆新能源汽車會議分別與亞太電動車協會、國際氫能協會、國際分散式能源聯盟、上海交通大學等合作,取得了豐富的碩果。在前三屆會議的基礎上,第四屆中國國際新能源汽車論壇將直擊新能源汽車行業發展最新熱點、彙聚行業精英、討論最前沿技術、為推動新能源汽車行業發展而努力,為還您一片碧水青天而奮鬥!

    第四屆中國國際新能源汽車論壇2014組委會誠摯邀請您參加本次會議,屆時將邀請全球範圍內的整車製造商、電網公司、電力公司、電池廠商、零部件供應商、核心技術提供商和政府官員一起,就新能源汽車產業面臨的機遇、挑戰和對策進行為期兩天的富有建設性和戰略性的討論。

    部分知名演講嘉賓:

    牛近明,主任,北京市新能源汽車發展促進中心
    王曉明,產業經濟研究部部長,國務院發展研究中心
    遲忠君,電動汽車技術室主任,國家電網北京電力科學研究院
    李峰,總裁,北汽股份
    劉明輝,電動汽車部部長,一汽集團
    黃晨東,新能源和技術管理部副總經理,上汽集團
    待定,大眾汽車
    George P. Hansen,亞太區燃料車商業化總監,通用汽車
    李高鵬,技術研究院常務副院長、新能源技術部部長,宇通
    文虎,市場部部長,江蘇常隆客車有限公司
    Pierre-Frederic Lebelle,亞洲運營部研發和設計總監,標緻雪鐵龍
    Kazumasa Iida, 先進技術中心總經理, 三菱汽車
    阮殿波,總工程師,副總經理,寧波南車新能源科技股份有限公司
    鄒玉峰,副總裁、總工程師,天津力神
    葉際平,所長,日產分析研究中心
    貢俊,總經理,上海電驅動聯盟上海汽車電驅動工程技術研究中心主任
    蔡蔚,首席技術官,精進電動科技有限公司

    熱點議題

    • 工信部、科技部及地方政府政策
    • 兩網對於私人充電設施建設的規劃與展望
    • 充電網路建設
    • 充電標準
    • 商業模式創新
    • 低速小型電動車的發展
    • 國內外整車商的發展戰略
    • 電池的國內最新發展趨勢
    • 超級電容、無線充電等電池替代技術
    • 電機、控制等核心零部件技術和代表車輛的介紹
    • 電動車的普及趨勢:市場需求和技術條件

    精彩不容錯過

    2天內容豐富的會議+1天輕鬆愉快的國家電網北京市電力公司現場參觀
    30+位海內外權威演講嘉賓
    250+名重要行業人士蒞臨

    會議議程:

    想瞭解詳細內容,請登陸官方網站:
    連絡人:徐賽玉
    電話:021-60456268 轉805 
    傳真:021-60475887
    郵箱:

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※教你寫出一流的銷售文案?

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※回頭車貨運收費標準

    ※別再煩惱如何寫文案,掌握八大原則!

    ※超省錢租車方案

  • 中聚電池1.9億入股雲南電動車公司50%股權

    中聚電池宣佈收購一家在雲南昆明產銷電動汽車公司的五成權益。中聚電池以1.9億元的總代價收購GIANT INDUSTRY全部股權,將按每股0.5元發行3.8億股新股份支付。代價股份佔經擴大後已發行股本2.19%。

    GIANT INDUSTRY擁有雲南美的客車製造50%的間接權益。雲南美主要從事製造、銷售、組裝及維修客車、電動汽車及總成,以及零件和部件。收購事項將為集團提供即時平台,以從事電動汽車製造。

    另外,中聚電池還宣佈,建議待該公司股東於股東特別大會上批准及經百慕達公司註冊處處長批准,將該公司英文名稱由「SinopOLy Battery Limited」更改為「FDG Electric Vehicles Limited」,而中文名稱則改為“五龍電動車(集團)”。

    董事會相信,建議更改名稱將為該公司提供新企業定位,符合該公司加強重點於電動汽車相關業務的新品牌,今後業務將包括但不限於設計、生產及銷售電動汽車;以及鋰離子電池業務的研發、生產及銷售和電動汽車租賃業務等。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※超省錢租車方案

    ※別再煩惱如何寫文案,掌握八大原則!

    ※回頭車貨運收費標準

    ※教你寫出一流的銷售文案?

  • 特斯拉與阿里及租車公司合作 方便中國民眾購買電動車

    電動汽車大廠特斯拉(Tesla)日前分別與阿里巴巴旗下支付寶及一嗨租車合作,中國大陸客戶不僅可用支付寶訂車付款,還可以租用特斯拉的電動車。首批兩輛Model S電動車已經正式交付,下一批將會在5月份到達。

    除了阿里巴巴與一嗨租車搶著與特斯拉合作,電信巨頭之一的中國聯通日前也傳出與特斯拉中國合作的消息,將由聯通為特斯拉的電動車提供車載資訊服務。

    其實電動車在大陸已經銷售多年,長城、比亞迪等大陸本土車廠都有製造電動汽車,但整體銷量始終未見起色。特斯拉卻在大陸獲得了超高人氣。

    根據中國汽車工業協會的統計,2013年全國的純電動車銷量只有14,604輛,僅占全年汽車銷量的不到1%。此外,在大陸的電動車銷售業績中,大多屬於商用載客或公務車輛,民眾主動購買的純電動車數量相當稀少。

    特斯拉去年全年銷售了23,500輛電動汽車。特斯拉創辦人Elon Musk日前表示,預估今年公司在全球的銷量將超過30,000輛,其中有5,000輛會來自大陸市場。該公司更計畫在大陸設立超級充電站與電動車產線。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※別再煩惱如何寫文案,掌握八大原則!

  • 明年京港澳高速全線將建成電動汽車充電服務區

    據新華社報導,中國大陸湖北省即將啟動京港澳高速湖北段電動汽車快速充電設施建設。到2015年,京港澳高速公路全線將建成智慧充電服務區,屆時電動汽車可從北京開到香港。

    全長2285公里的京港澳高速是中國南北交通大動脈。從今年起,國家電網公司將在京港澳高速北京至湖南段全長1500公里內,平均每38公里建設一對電動汽車智慧充電服務區,並將聯合南方電網公司和社會資本在2015年實現全線覆蓋。

    目前,按照國家電網統一部署,湖北省電力公司已與湖北省交通投資有限公司對接,雙方將於近期簽署戰略合作協議,儘快啟動湖北高速公路沿線充電網路建設。

    據瞭解,在京港澳高速湖北段,每個快充站將部署4臺120千瓦分體式充電機,可同時供8臺電動車充電,一般只需20分鐘即可充電80%,可提供150至200公里續航里程。

    按照國家電網公司智慧充換電網路發展規劃,2020年將全面建成以「四縱四橫」(四縱:沈海、京滬、京臺、京港澳,四橫:青銀、連霍、滬蓉、滬昆)為支撐的、覆蓋國家電網公司經營區內所有示範城市的城際快充網路。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※想知道最厲害的網頁設計公司"嚨底家"!

    ※幫你省時又省力,新北清潔一流服務好口碑

    ※別再煩惱如何寫文案,掌握八大原則!

  • Model S需求來到高原區 面臨BMW電動車威脅

    Model S需求來到高原區 面臨BMW電動車威脅

    巴克萊銀行6日發表分析報告指出,以特斯拉目前當紅的電動轎車「Model S」在美國、挪威的需求都逐漸來到高原區的情況來看,該公司未來恐怕會面臨愈來愈多風險,尤其是將面臨來自德國知名車商BMW即將出款的電動車的威脅。

    本週稍晚,BMW計劃在加州聖莫尼卡(Santa Monica)的法說會上發表插電式混合動力跑車「i8」。除了i8之外,BMW已推出了另一款電動轎車「i3」。根據報告,BMW的i系列車款不但顛覆了動力工程學的傳統概念,對車體設計、配送系統以及品牌形象也有全新理念。此外,BMW在整個製造過程中對續航力也特別重視。

    BMW的i8售價為136,000美元,而i3售價則為41,350美元。相較之下,特斯拉Model S系列車款售價則在70,000-93,000美元之間。i8、i3近期內可能會侵蝕部分Model S客戶層,而BMW中期要推的i5也可能對特斯拉大眾豪華車款「Gen III」構成威脅。

    巴克萊認為,BMW已將自身定位為超越特斯拉等同業的科技領航員。特斯拉的目標顧客可能剛好夾在BMW這兩款i系列車款中間。i3的車體較小,每次充電後的續航里程不如Model S,但其主打的客戶層卻與特斯拉類似;而i8則是較為高階、更為昂貴的跑車款式。

    本站,BMW公司針對旗下i系列車款,還設計了專屬的太陽能充電車棚。由BMW集團所屬BMW Designworks USA所設計、安置於美國加州Malibu的太陽能充電車棚(Solar Carport)目前已展開運作,安裝於車棚頂上的太陽能面板可為BMW i車款供電。

    圖:i3電動汽車

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※別再煩惱如何寫文案,掌握八大原則!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案