{"id":34246,"date":"2020-03-12T10:48:43","date_gmt":"2020-03-12T09:48:43","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fr\/?p=561"},"modified":"2020-03-12T10:48:43","modified_gmt":"2020-03-12T09:48:43","slug":"travailler-avec-des-bases-de-donnees-dans-jetbrains-rider","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/fr\/2020\/03\/12\/travailler-avec-des-bases-de-donnees-dans-jetbrains-rider\/","title":{"rendered":"Travailler avec des bases de donn\u00e9es dans JetBrains Rider"},"content":{"rendered":"Tous nos EDI sont construits sur la base d'IntelliJ IDEA Community Edition. Cela signifie que lorsque nous am\u00e9liorons un EDI, les autres b\u00e9n\u00e9ficient g\u00e9n\u00e9ralement aussi de ces am\u00e9liorations. Rider ne fait pas exception\u00a0! J'ai r\u00e9cemment utilis\u00e9 DataGrip, notre outil d'administration de bases de donn\u00e9es, et cela m'a rappel\u00e9 que Rider dispose de nombreuses fonctionnalit\u00e9s similaires.\r\nVue d'ensemble\r\nAu d\u00e9marrage de Rider, on trouve un onglet Database, situ\u00e9 dans le coin de notre environnement de d\u00e9veloppement. Si cet onglet n'est pas visible, vous pouvez l'afficher en utilisant le menu View\u00a0| Tool Windows | Database . Une autre option pour ouvrir l'onglet Database  (ou toute autre fonctionnalit\u00e9 de Rider) consiste \u00e0 utiliser Go to Action ou Search Everywhere (double-Maj) et \u00e0 rechercher Database.\r\n\r\nCette fen\u00eatre d'outils est notre portail vers les bases de donn\u00e9es, o\u00f9 nous pourrons effectuer diverses t\u00e2ches d'administration des bases de donn\u00e9es.\r\nAjouter un nouveau serveur de base de donn\u00e9es\r\nNous avons effectu\u00e9 un travail consid\u00e9rable afin de prendre en charge une multitude de moteurs de base de donn\u00e9es. Certains des moteurs de base de donn\u00e9es imm\u00e9diatement reconnaissables sont Microsoft SQL Server, PostgreSQL, MariaDB et SQLite. Ajoutons une connexion \u00e0 la base de donn\u00e9es.\r\n\r\nLa premi\u00e8re \u00e9tape consiste \u00e0 cliquer sur le bouton + dans la barre de navigation du haut, en survolant Data Source et en s\u00e9lectionnant le moteur de base de donn\u00e9es de notre choix. Dans cet exemple, nous ajouterons Microsoft SQL Server.\r\n\r\n\r\n\r\nDans la fen\u00eatre Data Sources and Drivers, nous pouvons entrer les param\u00e8tres de connexion g\u00e9n\u00e9raux tels que l'h\u00f4te, le port, l'utilisateur, le mot de passe et la base de donn\u00e9es par d\u00e9faut. Veuillez noter que Rider nous demandera de t\u00e9l\u00e9charger un pilote sp\u00e9cifique pour notre moteur de base de donn\u00e9es.\r\n\r\nNous pouvons tester nos param\u00e8tres de connexion en cliquant sur Test Connection en bas de la fen\u00eatre. Si la connexion est r\u00e9ussie, une coche verte devrait appara\u00eetre devant la version du serveur SQL.\r\n\r\nMaintenant que nous sommes connect\u00e9s, nous pouvons commencer ! Dans la prochaine section, nous verrons comment tirer parti des fonctionnalit\u00e9s de Rider pour d\u00e9velopper plus efficacement des applications reposant sur des bases de donn\u00e9es.\r\nCr\u00e9er une nouvelle base de donn\u00e9es\r\nUne fois connect\u00e9s, nous pouvons cr\u00e9er une nouvelle base de donn\u00e9es. Utilisez le menu contextuel de la nouvelle connexion dans l'onglet Database et s\u00e9lectionnez New\u00a0|\u00a0Database\r\n\r\nNous allons voir une fen\u00eatre contenant un script SQL pr\u00e9charg\u00e9. Nous pouvons changer le nom pour celui de notre choix et cliquer sur le bouton Execute. Dans la capture d'\u00e9cran, nous avons appel\u00e9 notre base de donn\u00e9es \r\n\r\ntest\r\n&nbsp;\r\n\r\n\u00a0:\r\n\r\n\r\n\r\nQu'en est-il des bases de donn\u00e9es existantes\u00a0? Voyant cela dans la section suivante !\r\nAjouter une base de donn\u00e9es existante\r\nSi nous avons d\u00e9j\u00e0 une instance de base de donn\u00e9es sur notre serveur, nous pouvons l'ajouter \u00e0 la liste des bases de donn\u00e9es visibles en cliquant sur les num\u00e9ros gris\u00e9s par notre connexion.\r\n\r\n\r\n\r\nIl est possible de choisir d'afficher toutes les bases de donn\u00e9es ou de ne voir que certaines d'entre elles. La possibilit\u00e9 de modifier la port\u00e9e de la visibilit\u00e9 fonctionne \u00e9galement au niveau de la base de donn\u00e9es, pour laquelle nous pouvons afficher ou masquer les sch\u00e9mas de base de donn\u00e9es.\r\nTravailler avec une base de donn\u00e9es\r\nDans la section pr\u00e9c\u00e9dente, nous nous sommes connect\u00e9s \u00e0 notre instance SQL Server et avons cr\u00e9\u00e9 une nouvelle base de donn\u00e9es nomm\u00e9e\r\ntest\r\n. Rider propose de nombreuses t\u00e2ches SQL accessibles par le biais de menus et d'actions contextuels. En l'occurrence, nous utiliserons les outils de l'interface utilisateur pour cr\u00e9er une table\r\nPersons\r\net ins\u00e9rer des donn\u00e9es dans notre base.\r\n\r\nNous devons d'abord nous assurer que nous avons s\u00e9lectionn\u00e9 un sch\u00e9ma de base de donn\u00e9es, apr\u00e8s quoi nous cr\u00e9erons la table dans le sch\u00e9ma\r\ndbo\r\nsch\u00e9ma.\r\n\r\n\r\n\r\nIns\u00e9rons des donn\u00e9es dans notre table en utilisant la vue Table. Nous commen\u00e7ons par double-cliquer sur la nouvelle table\r\nPersons\r\npour voir la vue Table.\u00a0Nous pouvons ensuite cliquer sur le bouton + de la barre d'outils pour ins\u00e9rer une nouvelle ligne. Enfin, nous enregistrons la transaction dans notre base de donn\u00e9es.\r\n\r\n\r\n\r\nLa console de Rider affiche une bo\u00eete de dialogue qui pr\u00e9sente la source de donn\u00e9es, le sch\u00e9ma, la table et les premi\u00e8res lignes de notre nouvelle table lorsque nous \u00e9crivons notre propre SQL. Si vous utilisez Alt+Entr\u00e9e ou Cmd+Entr\u00e9e, Rider aura la gentillesse de vous demander quels scripts vous souhaitez ex\u00e9cuter. Si votre console poss\u00e8de plus d'une instruction SQL, vous pouvez faire d\u00e9filer chacune d'elles avec les touches fl\u00e8ches haut et bas.\r\n\r\n\r\n\r\nC'est un super \u00e9diteur de console, mais voyons comment nous pouvons tirer parti de Rider dans notre base de code.\r\nTravailler avec des bases de donn\u00e9es dans des applications .NET\r\nQue nous utilisions des ORM \u00e9tablis comme Entity Framework, des micro-ORM comme Dapper, ou m\u00eame une version brute d'ADO.NET, Rider comprend notre code. Il apporte ainsi une valeur ajout\u00e9e consid\u00e9rable \u00e0 tout projet de base de donn\u00e9es.\r\n\r\nEn commen\u00e7ant par ADO.NET, nous allons voir comment Rider peut identifier les instructions SQL dans un litt\u00e9ral de cha\u00eene. Avant de continuer, assurez-vous que la source de donn\u00e9es a un nom de base de donn\u00e9es sp\u00e9cifi\u00e9.\r\nstatic async Task Main()\r\n{\r\n   await using var connection = new SqlConnection(ConnectionString);\r\n   var command = connection.CreateCommand();\r\n  \r\n   command.CommandText = \"select * from Persons\";\r\n   command.ExecuteReaderAsync();\r\n}\r\nD\u00e8s que la qualification d'instruction SQL est ajout\u00e9e, on peut voir la mise en \u00e9vidence des \u00e9l\u00e9ments de syntaxe dans notre litt\u00e9ral de cha\u00eene. C'est bien \u00e7a\u00a0! De la saisie automatique de code SQL dans une cha\u00eene\u00a0!\r\n\r\n\r\n\r\nEn utilisant Alt+Entr\u00e9e dans notre litt\u00e9ral de cha\u00eene SQL, nous pouvons voir que plusieurs actions contextuelles sont disponibles. Pour ex\u00e9cuter notre requ\u00eate sans avoir \u00e0 faire un copier\/coller, nous pouvons utiliser l'action Run in Console. Puis, nous s\u00e9lectionnons une session et avons le choix de la rattacher \u00e0 une console existante ou de lancer une nouvelle console. Lan\u00e7ons une nouvelle console.\r\n\r\n\r\n\r\nLorsque nous nous trompons dans le SQL, Rider nous donnera \u00e9galement des conseils sur la mani\u00e8re de r\u00e9gler notre probl\u00e8me.\r\n\r\n\r\n\r\nLa m\u00eame chose se produit pour les utilisateurs de Dapper. Rappelez-vous que Rider examine les litt\u00e9raux de cha\u00eene et d\u00e9termine si la cha\u00eene contient du SQL.\r\n\r\nRider peut \u00e9galement am\u00e9liorer notre capacit\u00e9 \u00e0 \u00e9crire des instructions SQL. Comme il est connect\u00e9 \u00e0 notre source de donn\u00e9es, il comprend \u00e9galement notre sch\u00e9ma. Cela procure une puissante saisie automatique du code et une capacit\u00e9 \u00e0 naviguer rapidement vers l'endroit pr\u00e9cis dans le sch\u00e9ma.\r\n\r\n\r\nConclusion\r\nCet article ne donne qu'un aper\u00e7u de ce que Rider peut faire pour nos workflows SQL et .NET. Nous pouvons g\u00e9rer toutes nos t\u00e2ches d'administration de bases de donn\u00e9es depuis le m\u00eame outil. Rider permet d'\u00e9crire, d'inspecter et d'ex\u00e9cuter des instructions SQL directement \u00e0 partir de notre code, que l'on ait une ou plusieurs sources de donn\u00e9es. Rider peut aider, quelle que soit la technologie d'acc\u00e8s aux donn\u00e9es choisie.\r\n\r\nT\u00e9l\u00e9chargez Rider 2020.1 EAP et testez par vous-m\u00eame\u00a0! Merci d'avoir lu cet article et n'h\u00e9sitez pas \u00e0 le commenter.\r\n\r\nL'article Travailler avec des bases de donn\u00e9es dans JetBrains Rider a \u00e9t\u00e9 publi\u00e9 pour la premi\u00e8re fois sur le blog .NET Tools.\r\n\r\nAuteur de l'article original en anglais :\u00a0Khalid Abuhakmeh","protected":false},"excerpt":{"rendered":"Tous nos EDI sont construits sur la base d'IntelliJ IDEA Community Edition. Cela signifie que lorsque nous am\u00e9liorons un EDI, les autres b\u00e9n\u00e9ficient g\u00e9n\u00e9ralement aussi de ces am\u00e9liorations. Rider ne f","protected":false},"author":{"name":"Delphine Massenhove","link":"https:\/\/blog.jetbrains.com\/fr\/author\/delphine-massenhovejetbrains-com"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[],"tags":[158,5433,5604,1978,5403],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34246"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=34246"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34246\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=34246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=34246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=34246"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=34246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}